Content-Type: multipart/related; start=; boundary=----------fvIzmB7KOcVRaT5GD7tplQ Content-Location: https://rutracker.org/forum/viewtopic.php?t=5219714 Subject: =?utf-8?Q?Adb=20Run=203.81.70=20[RUS]=20[=D0=A0=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=20=D1=81=20Android]=20[=D0=90=D0=BD=D0=B4=D1=80=D0=BE=D0=B8=D0=B4]=20::=20RuTracker.org?= MIME-Version: 1.0 ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline; filename=viewtopic.htm Content-Type: text/html; charset=windows-1251; name=viewtopic.htm Content-ID: Content-Location: https://rutracker.org/forum/viewtopic.php?t=5219714 Content-Transfer-Encoding: 8bit Adb Run 3.81.70 [RUS] [Работа с Android] [Андроид] :: RuTracker.org

Adb Run 3.81.70 [RUS] [Работа с Android] [Андроид]

Страницы:  1

Модераторы 

Ответить
Статистика раздачи
Размер:  9.9 MB   |   Зарегистрирован:  8 месяцев   |   .torrent скачан:  746 раз
Сиды:  20   Личи:  4
Добавить в «Будущие закачки»
  Мои сообщения  |  Опции показа
Автор
Сообщение

susanin608

Стаж: 7 лет 4 месяца

Сообщений: 9

flag

04-Май-16 12:01 (8 месяцев назад, ред. 10-Сен-16 18:17)

[Цитировать] 

Год выпуска: 2015 г.
Жанр: Программы для ПК
Разработчик: Шипилов Виталий
Издательство: androidp1.ru
Тип издания: Лицензия
Версия: 3.81.70
Язык интерфейса: Русский
Таблэтка: не требуется
Системные требования: Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10; Телефон на платформе Android
Описание: Adb run - это программа предназначенная для работы с телефоном через отладку по usb.
Для её корректной работы необходимы установленные драйвера от устройства и включенная отладка по USB.
Программа была переведена на русский язык лично мною. Постараюсь в скором времени обновить до версии 3.99.90
Особенности программы: ADB может выполнять действия от имени администратора (т. е. сочетается с ROOT) - например, она может разблокировать графический ключ или изменять файлы в системных директориях
Доп. информация: Программа была переведена на русский язык не полностью, а только её основные части на ПК.
В программе (кроме перевода языка) ничего не изменено.
Подробнее про ADB: В программе есть функция ручного ввода команд. Вот форум про основные команды ADB: http://goo.gl/sLcB2x
Возможности программы
ADB позволяет:
  1. Посмотреть какие устройства подключены и могут работать с ADB.
  2. Просматривать логи.
  3. Копировать файлы с/на аппарат.
  4. Устанавливать/Удалять приложения.
  5. Удалять (очищать) раздел data.
  6. Прошивать (перезаписывать) раздел data.
  7. Осуществлять различные скрипты управления.
  8. Управлять некоторыми сетевыми параметрами.
  9. Можно выполнять отдельные скрипты для ADB
    Например для слива паролей WIFI, слива ключа блокировки экрана и. т. д
Скриншоты
Скрипты
Если вы сами сделали скрипт, то можете написать мне ЛС. Я поставлю его в эту тему
Предупреждение: Скрипты работают не во всех телефонах. Я никому ничего не гарантировал.
Теория: ADB - консольное приложение. В Windows ADB "управляется" через cmd.
Для cmd существуют скрипты .bat и .cmd; Через них получается взаимодействовать с ADB.
Как пользоваться: Перейдите в пункт "Выполнить скрипт". Откроется окно проводника.
В эту папку копируем файл скрипта (.bat)... и жмём "Enter" в окне ADB run. Скрипт начнёт работу.
  1. Автор: susanin608
    https://yadi.sk/d/f6JShQBwreeL7
    Особенности: требуется ROOT
    Описание: Данный скрипт копирует с телефона пароли, настройки, вызовы и сообщения.
Это не последняя версия!
Вы можете скачать последнюю версию (она только на английском) на сайте androidp1.ru
Торрент: Зарегистрирован  [ 04-Май-16 12:01 ]  ·  Скачан: 746 раз

Скачать .torrent

Скачать .torrent

13 KB

Тип: обычная
Статус: * не проверено
Размер: 9.9 MB  ·  magnet8D3B64D8B1FE2B6FE90A0B198354B855445FDFD8
 
загружается...
Последние поблагодарившие
[Профиль]  [ЛС] 

vasil20

Стаж: 9 лет 11 месяцев

Сообщений: 29

Откуда: Москва

flag

11-Сен-16 23:21 (спустя 4 месяца 7 дней)

[Цитировать] 

Спасибо за программу. Нужны драйвера от LG d-335 . на сайте производителя нет. М.Б. что нибудь посоветуете?
[Профиль]  [ЛС] 

susanin608

Стаж: 7 лет 4 месяца

Сообщений: 9

flag

22-Сен-16 23:20 (спустя 10 дней)

[Цитировать] 

vasil20 писал(а):
71391336Спасибо за программу. Нужны драйвера от LG d-335 . на сайте производителя нет. М.Б. что нибудь посоветуете?
Спасибо и вам за отзыв
Можете поискать драйвера в группе 4pda
https://goo.gl/gnXAah
[Профиль]  [ЛС] 

random-factor

Стаж: 4 месяца 23 дня

Сообщений: 2

flag

06-Янв-17 11:17 (спустя 3 месяца 13 дней)

[Цитировать] 

Сапсибо ! помогла прога перезагрузить телефон зацикленный
ok, beyatch
[Профиль]  [ЛС] 
Быстрый ответ
    ?
       
Для отправки сообщений необходимo включить JavaScript
 
Ответить
Loading...
Error
------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline; filename=favicon.ico Content-Type: image/x-icon; name=favicon.ico Content-Location: https://static.t-ru.org/favicon.ico Content-Transfer-Encoding: Base64 AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4ODLy8vd3d0AAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPz8+KioqgoKDb29vj 4+Pf39/q6uoAAAAAAAAAAAAAAAAAAAAAAAAAAADe3t7b29vS0tL29vZOTk5paWly cnJ8fHy8vLwAAAAAAADt7e3c3Nzg4ODc3NympqbDw8OIiIjj4+PtTUD8393///// //////+8vLwAAAAAAADU1NSgoKCampqUlJSCgoLz8/NKSUni4uLpJxnqOCrwZ1z2 oZvj4+PPz88AAAAAAADr6+vx8fGmpqaurq7P9dn///9paWm9WlPhIBLpIRLpIRL/ //9XV1fOzMwAAAAAAADg4OD///9D1miK5qEQyz////8+PT1GLCuTFQvNHhHhIBLr trPPz8+kpKQAAAAAAADh4eH8/PwTzEEQyz8Qyz+M5qL///9sbGxWEQyZJBy9WlO7 cmzU1NSioqIAAAAAAADDw8P///8Qyz8Qyz8Qyz8Qyz9r34j///+emZk+PT1lZWTS 0tKmpqbg4OAAAAAAAADY2NiP56V74pVh3YAQyz////+mpqZYN9DDtfT///+zoPbf 39+xsbEAAAAAAAAAAAAAAAAAAAAAAAAAAAA31F/t7e2YmJhMIedAEulRJ+uhivSY mJi8vLwAAAAAAAAAAAAAAAAAAAAAAADj4+P+/v7IyMh2XdBAEulAEulAEunHuflK SUmYmJgAAAAAAAAAAAAAAAAAAAAAAAAAAADg4ODt7e329vZaM+tAEulAEulRJ+v/ //9+fn7d3d0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADd3d2plPV4WO////////// ///e3t7j4+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADr6+v///////+/v7/i4uLu 7u4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADV1dXp6ekAAAAA AAAAAAAAAAAAAAAAAAD+PwAA/gMAAPgDAAAAAwAAAAMAAAADAAAAAwAAAAMAAAAD AAAABwAA8AcAAOAHAADwAwAA/AMAAPwPAAD/PwAA ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline Content-Type: image/png Content-Location: https://static.t-ru.org/templates/v1/images/soc_sprite.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFoAAAASCAYAAAGspPmVAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAA AAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5U Y3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6 eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8w Mi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRw Oi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpE ZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5h ZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRv YmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0 dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1l bnRJRD0ieG1wLmRpZDo3MjcyNDJCNDRFRUNFMDExQTkyNkFCOThFQTYyRUI0RSIg eG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGRDgzQTBGMEY4RTUxMUUwQUVGRTgz QTNBQzNDNkEzMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGRDgzQTBFRkY4 RTUxMUUwQUVGRTgzQTNBQzNDNkEzMyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQ aG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6 aW5zdGFuY2VJRD0ieG1wLmlpZDo3MjcyNDJCNDRFRUNFMDExQTkyNkFCOThFQTYy RUI0RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3MjcyNDJCNDRFRUNFMDEx QTkyNkFCOThFQTYyRUI0RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRG 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 ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline Content-Type: image/gif Content-Location: https://static.t-ru.org/templates/v1/images/cellpic3.gif Content-Transfer-Encoding: Base64 R0lGODlhCABCAMQAADiSwAVrniuJuAluoRZ5qgNpnCGBsDmGrCeFtC6LuSWEtB9/ sBBzpSKCsh1+rhJ1pyiHtj2IrjOPvg5ypBt8rTCNuwtwojSRvgdsnzGNvEGKrxl7 qwxxoxR2pwAAAAAAACH5BAAAAAAALAAAAAAIAEIAQAWJ4CGO4mCeJqGuquK+riTP MmDfeK7veOH/volwKHQYj0aBcqnkOZ85jXQqDVivVot2q314v96NeCw2mM9miHqt rrjfbqh8TqdH7vg7EIjFYv6AfygoHIWGhQyJiokdjY6NLCwUk5STC5eYlw2bnJsI n6CfTEwJpaalGamqqRetrq11sbKztLW2NiEAOw== ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline Content-Type: image/gif Content-Location: https://static.t-ru.org/templates/v1/images/cellpic1.gif Content-Transfer-Encoding: Base64 R0lGODlhCQAZAMQAAMzU287W3MnS2ODl6dje49rg5NTb4N/k6N3i5sjR19HY3sjQ 1sjS2NLZ3sfQ19bc4dnf5Nfe49HY3dXc4dDX3dfd4t7j58vT2dPa39Pa4Nzh5dzh 5t7k587W29vh5s3V2yH5BAAAAAAALAAAAAAJABkAAAVz4OKMpLOcSTIuaesmjCDP 6Xxds3Dv/AUAvt/v8ikCishO4NMpNj+BACUanVKuVwlWwZVwv42wWIwpZzDnTMbA brcfk7gcXqnb7YQ8IZLnQ/5/BIAFhIWFGxoeHoiKGgiPkJAWHBaVlZQHA5maB50D n6CgIQA7 ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline Content-Type: image/gif Content-Location: https://static.t-ru.org/templates/v1/images/menu_open.gif Content-Transfer-Encoding: Base64 R0lGODlhCwAHANUpAP////r//3WQv2p7lpGuwLvJ3YecxY2k0PP5/7LJ0GBscP3/ //H//+jv+dnk83qLqq+80XCDo+Hq9Ymdw7zK34CYqcvz/3SQv9j9/5qx21Fidn2S uLre7nSWodv//3aJrLLA1m9+mIKZxGR/hoymvsPO31xxd6/U46a2yXOPvwAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAEAACkALAAAAAALAAcAAAY0wEOJUgBBUARSJZIBOJ8M z0lzcTwBCwzHJEiJJM+AZbRJmQ0NZ6DzMLsnCEAi5K5/FIN6EAA7 ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline Content-Type: image/gif Content-Location: https://static.t-ru.org/templates/v1/images/icon_plus_1.gif Content-Transfer-Encoding: Base64 R0lGODlhCQAJAMQfAIqZyoGSxv3+/trl84CQxYCRxn6PxMXQ7efq9H+Pwtnk8oKT xoCQxKy44QAAANvl9rvG6fD5/o2by4GRxvb8//v9//7+/ubw+v39/ouayoKSxoOT x/7+/wwMDP///////yH5BAEAAB8ALAAAAAAJAAkAAAU84AdoGkNmX4Z4HldRirSx XMdF1zK7nXU9mk2t4+h0BIlNhWPpYTCBDQXXwRwggczgJ8BAGhLRZGIoEFAhADs= ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline Content-Type: image/png Content-Location: https://static.t-ru.org/templates/v1/images/icon_nav_sprite_1.png Content-Transfer-Encoding: Base64 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 ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline Content-Type: image/png Content-Location: https://static.t-ru.org/templates/v1/images/icon_close.png Content-Transfer-Encoding: Base64 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 ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline; filename=70a70791309070931221099652f364de.all.min.css Content-Type: text/css; name=70a70791309070931221099652f364de.all.min.css Content-Location: https://static.t-ru.org/templates/v1/min/70a70791309070931221099652f364de.all.min.css Content-Transfer-Encoding: Quoted-Printable /*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.cs= s */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-s= ize-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,fo= oter,header,hgroup,main,menu,nav,section,summary{display:block}audio,can= vas,progress,video{display:inline-block;vertical-align:baseline}audio:no= t([controls]){display:none;height:0}[hidden],template{display:none}a{bac= kground-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-= bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{fon= t-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-si= ze:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-al= ign:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:roo= t){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;heig= ht:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospac= e;font-size:1em}button,input,optgroup,select,textarea{margin:0}button{ov= erflow:visible}button,select{text-transform:none}button,html input[type=3D= "button"],input[type=3D"reset"],input[type=3D"submit"]{-webkit-appearanc= e:button;cursor:pointer}button[disabled],html input[disabled]{cursor:def= ault}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0= }input{line-height:normal}input[type=3D"checkbox"],input[type=3D"radio"]= {box-sizing:border-box;padding:0}input[type=3D"number"]::-webkit-inner-s= pin-button,input[type=3D"number"]::-webkit-outer-spin-button{height:auto= }input[type=3D"search"]{-webkit-appearance:textfield;box-sizing:content-= box}input[type=3D"search"]::-webkit-search-cancel-button,input[type=3D"s= earch"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{bord= er:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{b= order:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table= {border-collapse:collapse;border-spacing:0}td,th{padding:0}meta.foundati= on-version{font-family:"/5.5.3/"}meta.foundation-mq-small{font-family:"/= only screen/";width:0}meta.foundation-mq-small-only{font-family:"/only s= creen and (max-width: 53.33333em)/";width:0}meta.foundation-mq-medium{fo= nt-family:"/only screen and (min-width:53.41667em)/";width:53.41667em}me= ta.foundation-mq-medium-only{font-family:"/only screen and (min-width:53= .41667em) and (max-width:85.33333em)/";width:53.41667em}meta.foundation-= mq-large{font-family:"/only screen and (min-width:85.41667em)/";width:85= .41667em}meta.foundation-mq-large-only{font-family:"/only screen and (mi= n-width:85.41667em) and (max-width:120em)/";width:85.41667em}meta.founda= tion-mq-xlarge{font-family:"/only screen and (min-width:120.08333em)/";w= idth:120.08333em}meta.foundation-mq-xlarge-only{font-family:"/only scree= n and (min-width:120.08333em) and (max-width:160em)/";width:120.08333em}= meta.foundation-mq-xxlarge{font-family:"/only screen and (min-width:160.= 08333em)/";width:160.08333em}meta.foundation-data-attribute-namespace{fo= nt-family:false}html,body{height:100%}*,*:before,*:after{box-sizing:bord= er-box}html,body{font-size:12px}body{background:#fff;color:#222;cursor:a= uto;font-family:"Helvetica Neue",Helvetica,Roboto,Arial,sans-serif;font-= style:normal;font-weight:normal;line-height:1.5;margin:0;padding:0;posit= ion:relative}a:hover{cursor:pointer}img{max-width:100%;height:auto}img{-= ms-interpolation-mode:bicubic}#map_canvas img,#map_canvas embed,#map_can= vas object,.map_canvas img,.map_canvas embed,.map_canvas object,.mqa-dis= play img,.mqa-display embed,.mqa-display object{max-width:none !importan= t}.left{float:left !important}.right{float:right !important}.clearfix:be= fore,.clearfix:after{content:" ";display:table}.clearfix:after{clear:bot= h}.hide{display:none}.invisible{visibility:hidden}.antialiased{-webkit-f= ont-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{display:= inline-block;vertical-align:middle}textarea{height:auto;min-height:50px}= select{width:100%}.f-dropdown{display:none;left:-9999px;list-style:none;= margin-left:0;position:absolute;background:#fff;border:solid 1px #ccc;fo= nt-size:1.16667rem;height:auto;max-height:none;width:100%;z-index:89;mar= gin-top:2px;max-width:200px}.f-dropdown.open{display:block}.f-dropdown>*= :first-child{margin-top:0}.f-dropdown>*:last-child{margin-bottom:0}.f-dr= opdown:before{border:inset 6px;content:"";display:block;height:0;width:0= ;border-color:transparent transparent #fff transparent;border-bottom-sty= le:solid;position:absolute;top:-12px;left:10px;z-index:89}.f-dropdown:af= ter{border:inset 7px;content:"";display:block;height:0;width:0;border-co= lor:transparent transparent #ccc transparent;border-bottom-style:solid;p= osition:absolute;top:-14px;left:9px;z-index:88}.f-dropdown.right:before{= left:auto;right:10px}.f-dropdown.right:after{left:auto;right:9px}.f-drop= down.drop-right{display:none;left:-9999px;list-style:none;margin-left:0;= position:absolute;background:#fff;border:solid 1px #ccc;font-size:1.1666= 7rem;height:auto;max-height:none;width:100%;z-index:89;margin-top:0;marg= in-left:2px;max-width:200px}.f-dropdown.drop-right.open{display:block}.f= -dropdown.drop-right>*:first-child{margin-top:0}.f-dropdown.drop-right>*= :last-child{margin-bottom:0}.f-dropdown.drop-right:before{border:inset 6= px;content:"";display:block;height:0;width:0;border-color:transparent #f= ff transparent transparent;border-right-style:solid;position:absolute;to= p:10px;left:-12px;z-index:89}.f-dropdown.drop-right:after{border:inset 7= px;content:"";display:block;height:0;width:0;border-color:transparent #c= cc transparent transparent;border-right-style:solid;position:absolute;to= p:9px;left:-14px;z-index:88}.f-dropdown.drop-left{display:none;left:-999= 9px;list-style:none;margin-left:0;position:absolute;background:#fff;bord= er:solid 1px #ccc;font-size:1.16667rem;height:auto;max-height:none;width= :100%;z-index:89;margin-top:0;margin-left:-2px;max-width:200px}.f-dropdo= wn.drop-left.open{display:block}.f-dropdown.drop-left>*:first-child{marg= in-top:0}.f-dropdown.drop-left>*:last-child{margin-bottom:0}.f-dropdown.= drop-left:before{border:inset 6px;content:"";display:block;height:0;widt= h:0;border-color:transparent transparent transparent #fff;border-left-st= yle:solid;position:absolute;top:10px;right:-12px;left:auto;z-index:89}.f= -dropdown.drop-left:after{border:inset 7px;content:"";display:block;heig= ht:0;width:0;border-color:transparent transparent transparent #ccc;borde= r-left-style:solid;position:absolute;top:9px;right:-14px;left:auto;z-ind= ex:88}.f-dropdown.drop-top{display:none;left:-9999px;list-style:none;mar= gin-left:0;position:absolute;background:#fff;border:solid 1px #ccc;font-= size:1.16667rem;height:auto;max-height:none;width:100%;z-index:89;margin= -left:0;margin-top:-2px;max-width:200px}.f-dropdown.drop-top.open{displa= y:block}.f-dropdown.drop-top>*:first-child{margin-top:0}.f-dropdown.drop= -top>*:last-child{margin-bottom:0}.f-dropdown.drop-top:before{border:ins= et 6px;content:"";display:block;height:0;width:0;border-color:#fff trans= parent transparent transparent;border-top-style:solid;bottom:-12px;posit= ion:absolute;top:auto;left:10px;right:auto;z-index:89}.f-dropdown.drop-t= op:after{border:inset 7px;content:"";display:block;height:0;width:0;bord= er-color:#ccc transparent transparent transparent;border-top-style:solid= ;bottom:-14px;position:absolute;top:auto;left:9px;right:auto;z-index:88}= .f-dropdown li{cursor:pointer;font-size:1.16667rem;line-height:1.5rem;ma= rgin:0}.f-dropdown li:hover,.f-dropdown li:focus{background:#eee}.f-drop= down li a{display:block;padding:.5rem;color:#555}.f-dropdown.content{dis= play:none;left:-9999px;list-style:none;margin-left:0;position:absolute;b= ackground:#fff;border:solid 1px #ccc;font-size:1.16667rem;height:auto;ma= x-height:none;padding:1.66667rem;width:100%;z-index:89;max-width:200px}.= f-dropdown.content.open{display:block}.f-dropdown.content>*:first-child{= margin-top:0}.f-dropdown.content>*:last-child{margin-bottom:0}.f-dropdow= n.radius{border-radius:3px}.f-dropdown.tiny{max-width:200px}.f-dropdown.= small{max-width:300px}.f-dropdown.medium{max-width:500px}.f-dropdown.lar= ge{max-width:800px}.f-dropdown.mega{width:100% !important;max-width:100%= !important}.f-dropdown.mega.open{left:0 !important}.reveal-modal{positi= on:fixed}fieldset{border-color:#969696}table{border-collapse:separate}se= lect{width:auto}img{max-width:none;vertical-align:baseline}html{overflow= -y:scroll}html,body,form,fieldset,h3,h4,h5,h6,p,pre,blockquote,ul,ol,dl,= li,dd{margin:0;padding:0}blockquote,ul,ol,li,dd{margin-left:1em}table{bo= rder-spacing:0}td,th{padding:0}body{color:#000000;background:#E3E3E3}bod= y,th,td,font{font:12px Verdana,Arial,sans-serif}#body_container{backgrou= nd:#E3E3E3;padding:0 0 4px}#page_container{margin:0 auto;background:#FFF= FFF}#page_header{position:relative;width:100%}#page_content{padding:12px= 10px 0;margin:0 auto;clear:both;position:relative}#sidebar2{padding:0 3= px 0 6px;vertical-align:top;width:240px}#sidebar1_wrap{width:240px;margi= n-top:-4px}#main_content{vertical-align:top}#page_footer{clear:both;marg= in:12px 0 3px}hr{height:0px;border:0px solid #B7C0C5;border-top-width:1p= x}.hr{border-top:1px #B7C0C5 solid}form{display:inline}label{display:inl= ine-block;margin:3px 2px 0 0;cursor:pointer;white-space:nowrap}img{borde= r:0px}wbr{display:inline-block}.highlight{color:#FF0000;background:#FFFF= E0}.unselectable,.a-like,.adm,a.adm,a.adm:visited,.menu-root{-webkit-use= r-select:none;-moz-user-select:none;-ms-user-select:none;user-select:non= e}.selectable{-webkit-user-select:text;-moz-user-select:text;-ms-user-se= lect:text;user-select:text}a:link,a:visited{color:#006699}a:hover,a:acti= ve,a:focus{color:#DD6900 !important;text-decoration:underline !important= }.a-like{color:#006699 !important;cursor:pointer}.a-like:hover{color:#DD= 6900 !important;text-decoration:underline !important}.colorAdmin,a.color= Admin,a.colorAdmin:visited{color:#FF8C24 !important}.colorMod,a.colorMod= ,a.colorMod:visited{color:#008000 !important}.colorGroup,a.colorGroup,a.= colorGroup:visited{color:#476996 !important}.colorCPH,a.colorCPH,a.color= CPH:visited{color:#0080FF !important}.adm,a.adm,a.adm:visited{color:#800= 000;text-decoration:none;font-size:11px;cursor:pointer}.adm:hover{color:= #D60000 !important;text-decoration:none !important}.dlWill{color:#0066CC= }.dlDown,.leech,.leechmed,.leechsmall{color:#800000}.dlComplete,.seed,.s= eedmed,.seedsmall{color:#006600}.dlCancel{color:#666666}a.dlWill,a.dlWil= l:visited{color:#0066CC;text-decoration:none}a.dlDown,a.dlDown:visited{c= olor:#800000;text-decoration:none}a.dlComplete,a.dlComplete:visited{colo= r:#006600;text-decoration:none}a.dlCancel,a.dlCancel:visited{color:#6666= 66;text-decoration:none}a.leech,a.leechmed,a.leechsmall,a.leech:visited,= a.leechmed:visited,a.leechsmall:visited{color:#800000;text-decoration:no= ne}a.seed,a.seedmed,a.seedsmall,a.seed:visited,a.seedmed:visited,a.seeds= mall:visited{color:#006600;text-decoration:none}.nick,.nick a{color:#005= A88 !important;font-size:13px;font-weight:bold;text-decoration:none}.nic= k-author,.nick-author a{color:#0000FF !important}.nav{margin:0.3em 0;fon= t-size:11px;font-weight:bold}.nav a{text-decoration:none}.nav em{color:#= 660000;font-style:normal}.nav-top{font-size:14px;font-weight:normal}.top= ictitle,a.topictitle{font-size:11px;text-decoration:none;font-weight:bol= d}.torTopic,a.torTopic{font-size:11px;text-decoration:none}a.topictitle:= visited,a.torTopic:visited,a.tLink:visited{color:#5493B4}#soc-container{= position:relative}.soc-buttons{position:absolute;right:-3px;bottom:-6px}= .soc-buttons span{background-image:url(../images/soc_sprite.png);display= :inline-block;opacity:.40;width:18px;height:18px;margin-right:4px}.soc-b= uttons span:hover{opacity:1;cursor:pointer}.row1,.row1 td{background:#EF= EFEF}.row2,.row2 td{background:#DEE3E7}.row3,.row3 td{background:#D1D7DC= }.row4,.row4 td{background:#ECECEC}.row5,.row5 td{background:#E7E7E7}.ro= w6,.row6 td{background:#DDDDDD}.prow1{background:#ECECEC}.prow2{backgrou= nd:#E7E7E7}.prow3{background:#DEE3E7}.p-body tr{background:#ECECEC}.p-bo= dy tr:hover{background:#DEE3E7}h1{font-size:18px;font-weight:bold;margin= :0.2em 0 0.5em}h2{font-size:16px;font-weight:bold;margin:0.2em 0 0.5em}h= 3{font-size:13px;font-weight:bold;letter-spacing:1px}h4{font-size:12px;f= ont-weight:bold}h5{font-size:12px;font-weight:normal}h6{font-size:11px;f= ont-weight:normal}.maintitle,.pagetitle{font-family:"Trebuchet MS",Verda= na,sans-serif;color:#3C3C3C;padding:0 4px;margin:0.2em 0 0.5em}.maintitl= e a,.pagetitle a{text-decoration:none}.maintitle{font-size:22px}.gen,.se= ed,.leech,.gen td{font-size:12px}.med,.seedmed,.leechmed,.med td{font-si= ze:11px}.small,.gensmall,.seedsmall,.leechsmall,.small td{font-size:10px= }.tiny,.tiny td{font-size:10px;letter-spacing:-1px}td.gen{font-size:12px= !important}td.med{font-size:11px !important}td.small{font-size:10px !im= portant}.gen,.med,.small,.gensmall{color:#000000}a.gen,a.med,a.small,a.g= ensmall{color:#006699;text-decoration:none}.post-align,.post-br,.post-hr= ,var.postImgAligned{display:block}.sp-wrap,.post-hr{margin:8px auto}.c-w= rap,.q-wrap{margin:8px auto}.c-wrap,.q-wrap,.sp-wrap{width:98%;clear:bot= h}.q-wrap .q-wrap,.sp-wrap .sp-wrap{margin:2px auto 4px}.c-head,.q-head{= padding:0 1px;font-size:11px;color:#444444}.c-body,.q,.sp-wrap,.sp-head,= .sp-body{border:solid #C3CBD1;border-width:1px 1px 1px 2px;clear:both}.c= -body,.q,.sp-body{padding:2px 6px}.c-head,.q-head,.sp-head{text-align:le= ft !important;min-width:150px;min-height:14px}.post-align{margin:8px aut= o}.post-br{line-height:12px}.post-b{font-weight:bold}.post-u{text-decora= tion:underline}.post-i{font-style:italic}.post-s{text-decoration:line-th= rough}.post-box{display:inline-block;border:1px solid #A7B4BA;border-rad= ius:3px;line-height:150%;margin:1px 5px;padding:0 8px 1px}.post-box .sp-= wrap{min-width:250px}.post-ul{list-style:disc}.post-ul .post-ul{list-sty= le:circle}.post-ul .post-ul .post-ul{list-style:square}.c-body{font-size= :13px;font-family:"Lucida Console","Courier New",Courier,monospace;color= :#006600;background:#FAFAFA}.q{background:#FAFAFA;color:#2E2E2E;max-heig= ht:350px;overflow:auto}.q .q{background:#F5F5F5;max-height:100%;overflow= :visible}.q .q .q{background:#FAFAFA}.q .q .q .q{background:#F5F5F5}.q .= q .q .q .q{background:#FAFAFA}.q .q .q .q .q .q{background:#F5F5F5}.sp-h= ead{border-width:0;padding:1px 14px 3px;margin-left:6px;cursor:pointer;f= ont-weight:bold}.sp-head span,.q-head span{display:inline-block;margin:0= ;font-family:Verdana, sans-serif;font-style:normal;font-size:11px !impor= tant;line-height:15px;text-decoration:none}.sp-head span{color:#2A2A2A}.= q-head span{color:#444444}.sp-wrap{padding:0;background:#E9E9E6}.sp-body= {border-width:1px 0 0 0;display:none;font-weight:normal;background:#F5F5= F5}.sp-fold{width:98%;margin:0 auto;text-align:right;font-size:10px;colo= r:#444444;clear:both}.post_body ul,.post_body ol{margin:8px auto 8px 8px= }.post_body li{margin:0px 4px 1px 24px}ul[type=3D"1"]{list-style-type:de= cimal}ul[type=3D"a"]{list-style-type:lower-alpha}ul[type=3D"i"]{list-sty= le-type:lower-roman}img.smile{vertical-align:-2px}img.postImg{margin:2px= 2px 0 0}img.postImgAligned{margin:4px 4px 2px}var.img-left{float:left;c= lear:left}var.img-right{float:right;clear:right}.post_body pre{border:no= ne;background:transparent;padding:0;margin:0}.post-pre{white-space:pre-w= rap;font-family:monospace}.infobox{width:780px;margin:8px auto}.infobox = fieldset{padding:6px}.infobox legend{font-weight:bold}.infobox article{b= ackground:#FFFFFF;padding:1em;height:540px;overflow:auto;border:1px soli= d #CAD1D5}.infobox p{margin:1em 0}input,textarea,select{font-family:Verd= ana,sans-serif}select,input{font-size:11px}optgroup,option,textarea{font= -size:12px !important}option{padding-bottom:2px;border-bottom:1px solid = #DADADA}option:last-child{padding-bottom:1px;border-bottom:none}option:h= over{background-color:#EBF2FC}input.mainoption,input.main,input.liteopti= on,input.lite{font-size:11px;border:1px solid;background:#FAFAFA;padding= -left:10px;padding-right:10px}input.mainoption,input.main{font-weight:bo= ld}input.button,.buttons input{border:1px solid;background:#F5F5F5}input= .long{padding-left:20px;padding-right:20px}input.button,.buttons input,i= nput.mainoption,input.main,input.liteoption,input.lite{color:#000000;bor= der-color:#B4B4B4 #000000 #000000 #B4B4B4}input[type=3D"checkbox"],input= [type=3D"radio"]{cursor:pointer;margin:1px 2px 1px 1px;padding:0;height:= 13px;width:13px;vertical-align:text-top}input[disabled=3D"disabled"]{col= or:#808080}input.error{color:#FF0000;font-weight:bold}input.found{font-w= eight:bold}.cat input[type=3D"text"]{background:#FCFCFC}optgroup,option,= fieldset,legend{font-family:Verdana,sans-serif}optgroup{font-weight:bold= ;font-style:normal;color:#005A88;background:#DEE3E7}optgroup option{colo= r:#000000;background:#FFFFFF}legend{padding:0 2px 2px;font-size:11px;col= or:#000066}legend a{text-decoration:none}fieldset>legend{margin-left:6px= }.has_sf{color:#333333;background:#F5F5F5;font-weight:bold}.ped-editor{m= argin:4px}.ped-editor select+select{margin-left:3px}.ped-editor textarea= {display:block;width:100%;padding:3px 5px;resize:vertical}.ped-editor-bu= ttons .buttons-row{margin-bottom:4px}.ped-editor-buttons .buttons-row in= put[type=3D"button"]{background:#F9F9F9;background:linear-gradient(#FBFB= FB 5%, #E6E6E6 100%);box-shadow:0 0 3px #fff inset,0 2px 5px -2px rgba(0= ,0,0,0.2);border-radius:2px;border:1px solid rgba(0,0,0,0.4);text-shadow= :0 1px 0 rgba(255,255,255,0.7);padding:2px}.ped-editor-buttons .buttons-= row input[type=3D"button"]:active{color:#8B0000;background:linear-gradie= nt(#E6E6E6 5%, #FBFBFB 100%)}.ped-editor-buttons option:not(:first-of-ty= pe){background:#F1F1F3}.ped-editor-buttons option.em{font-weight:bold;ba= ckground:#E6E4E4}.ped-submit-buttons{margin:5px;text-align:center}.ped-s= ubmit-buttons input{margin:0 3px;padding:1px 6px}.quick-reply .ped-edito= r-buttons{text-align:center}.quick-reply textarea{width:900px;margin:0 a= uto;resize:both;min-height:100px}.p-quick-preview-box{width:900px;margin= :6px auto;border:1px solid #A9A9A9;padding:4px;overflow:auto;resize:both= ;box-shadow:0 1px 3px rgba(0,0,0,0.2)}#ext-reply #p-quick-preview-btn{di= splay:none}.fieldsets td{vertical-align:top;white-space:nowrap}.fieldset= s fieldset{margin:4px 4px}.fieldsets fieldset div{padding:3px 6px 4px}.f= ieldsets div p{margin-bottom:1px}.fieldsets div>p{margin-bottom:2px}.fie= ldsets .select{margin-bottom:3px}.fieldsets .radio{padding-left:5px}tabl= e.my_downloads{margin-bottom:2px}.my_downloads td{padding:1px 8px 2px 0 = !important}.fldSet1{margin:2px 4px 1px 4px;padding:0px}.fldSetCont1{marg= in:0px;padding:3px 8px 4px 8px}.fldSetCont2{margin:0px;padding:2px 8px 4= px 8px}.fldSetCont3{margin:0px;padding:6px 8px 8px 8px}.hl_only_new{colo= r:#993300}.select-action{background:#F5F5F5}.txtb,.txtb:link,.txtb:visit= ed,.txtb:hover{color:#003366;font-size:11px;text-decoration:none}.txtb:h= over{color:#DD6900;text-decoration:underline;cursor:pointer}s.txtb{color= :#676767}.bodyline{background:#FFFFFF;border:1px solid #A5AFB4}.bodyline= th{background:#71869F;color:#F0F8FF;font-weight:bold}table.forumline{wi= dth:100%;background:#B7C0C5;border-collapse:collapse;margin-left:auto;ma= rgin-right:auto;border-top:1px solid #B7C0C5}.forumline th{border:1px so= lid #B7C0C5;border-width:1px;border-top-color:#BDC5CA;padding:6px 3px 4p= x;color:#000000;background-color:#CFD4D8;font-size:10px;text-transform:u= ppercase}.forumline td{border:1px solid #CAD1D5;border-width:0 1px 1px}.= thHead{padding:6px 8px 7px;text-align:center;color:#D5E4EC;font-size:11p= x;font-weight:bold;background:#069 url(../images/cellpic3.gif) repeat-x}= .forumline th:first-child{border-left-color:#B7C0C5}.forumline th:last-c= hild{border-right-color:#B7C0C5}.forumline td{padding:2px 4px 3px}table.= borderless th,table.borderless td{border:0px none}table.bordered{border-= collapse:collapse;border:1px solid #B7C0C5}.bordered th,.bordered td,tab= le.borderless .bordered th,table.borderless .bordered td{border-style:so= lid;border-width:1px;border-color:#B7C0C5}table.message{margin:0 auto;wi= dth:100%}table.message td{padding:12px;text-align:center;background:#EFE= FEF}.cat,td.cat,td.catTitle,td.catHead,td.catBottom{padding:5px 4px 6px;= background:#E0E5E9 url(../images/cellpic1.gif) repeat-x}.catTitle{font-w= eight:bold;letter-spacing:1px;color:#333333;text-align:center}.catTitle = a{text-decoration:none}.catBottom{text-align:center}.info_msg_wrap{margi= n:12px 0}table.info_msg{width:100%;border:1px solid #B7C0C5;background:#= DEE3E7;margin:0 auto}table.info_msg .msg{border:1px solid #B7C0C5;backgr= ound:#EFEFEF;padding:20px;text-align:center}table.error{width:100%;borde= r:2px solid #993300;background:#FFD4CC;margin:0 auto}table.error .msg{bo= rder:1px solid #993300;background:#FAEBD7;padding:20px;color:#A52A2A;tex= t-align:center}.pm_nav td{padding:4px;font-size:14px;font-weight:bold}ta= ble.translit_expl th{width:30px;padding-right:8px;font-weight:bold;text-= align:right}table.translit_expl td{width:14px}table.user_details th{padd= ing:2px 6px;text-align:right;vertical-align:top}.user_details td{width:7= 0%}table.smilies td{padding:3px;text-align:center}#traf-stats-tbl{margin= :6px 4px 6px 1px;background:#F9F9F9;border:1px solid #A5AFB4;border-spac= ing:1px;border-collapse:separate}#traf-stats-tbl th,#traf-stats-tbl td{p= adding:2px 6px 3px;text-align:center;white-space:nowrap;font-size:11px}#= traf-stats-tbl td{width:100px;color:#006600;padding:3px 6px 4px}#traf-st= ats-tbl td:first-child{width:85px;color:#000000}.topmenu{background:#EFE= FEF;border:1px solid #CFD4D8;margin:3px 10px 0;padding:0 3px}.topmenu a:= link,.topmenu a:visited{text-decoration:none}.topmenu td{padding:4px;fon= t-size:11px;white-space:nowrap}.new-pm{background:#FFD9B2 !important;bor= der-color:#FFB062 !important}.new-pm-link{color:#993300 !important;font-= weight:bold}.new-pm-link:hover{color:#591D00 !important}#logo{padding:0;= min-height:102px}#logo>table{width:100%;height:100%}.site-logo{width:320= px;height:85px}.logged-in-as-wrap{min-width:130px}@media screen and (max= -width: 1100px){.site-logo{width:240px;height:auto}.logged-in-as-cap{dis= play:none}}.site-nav{min-width:600px;background-color:#CFD4D8}.site-nav = div{min-height:23px;padding:4px 10px 4px}.site-nav b{padding:0 4px 0 1px= }.site-nav a{color:#535F62;text-decoration:none}.site-nav a:hover,.site-= nav a:active{text-decoration:none !important;color:#000000 !important}.s= ite-nav .natz-flag{width:24px;height:15px;vertical-align:text-bottom}#la= test_news{margin-bottom:0}#latest_news table{width:100%;border-collapse:= collapse}#latest_news h3{padding:0 0 3px 0;color:#333333}#latest_news td= {vertical-align:top}.news_date{float:right;padding:1px 8px 1px;white-spa= ce:nowrap;font-family:"Courier New",Courier,monospace;color:#333333;back= ground:#F2F2F2;border:1px solid #B4B4B4}.news_title{padding:3px 8px 2px;= margin-bottom:2px;background:transparent url(../images/hr400_ltr_gradien= t.jpg) no-repeat left top}#latest_news a{text-decoration:none;color:#000= 000}#latest_news .new a{color:#A52A2A;font-weight:bold}.topmenu input,.t= opmenu select{font-size:12px;height:22px}.topmenu option{font-size:12px}= .topmenu input[type=3D"text"],.topmenu input[type=3D"password"]{backgrou= nd:white;border:1px solid #C0C0C0;padding:2px;margin-right:1px}.topmenu = input[type=3D"submit"],.topmenu input[type=3D"button"]{width:60px}#quick= -search input,#quick-search select{vertical-align:middle}#search-text{wi= dth:300px}@media screen and (max-width: 1200px){#search-text{width:170px= }}#search-text:focus{outline:2px solid #4D90FE;outline-offset:-2px}#sear= ch-menu{width:120px;border:1px solid #C0C0C0}#top-login-box{padding:0 16= px}#search-text-guest{width:316px}#top-login-uname,#top-login-pwd{width:= 130px}#top-login-btn{font-weight:bold}#login-form-quick label{padding:0 = 4px}#login-form-quick .login-ssl{vertical-align:middle;height:14px}.logg= ed-in-as-uname{margin:0 4px}#sidebar1{width:240px;padding:0 6px 0 0;vert= ical-align:top}#sidebar1 h3,#idx-sidebar2 h3{padding:0 0 4px 0;margin:8p= x 0 2px 0;color:#333333;text-indent:1px;background:transparent url(../im= ages/hr200_ltr_gradient.jpg) no-repeat left bottom}#sidebar1 h3 a{color:= #333333}#sidebar1 h5{padding:2px 4px 5px}#sidebar1 ul{margin:6px 0 0 10p= x}#sidebar1 li{margin-bottom:2px;margin-left:14px}#sidebar1 a{text-decor= ation:none;color:#005A88}.tr_main_cats ul{list-style-image:url(../images= /arrow1.gif)}.tr_main_cats li{margin-bottom:3px;margin-left:11px;font-si= ze:11px;font-weight:bold;line-height:110%}.bn-idx{padding:7px 0 0}#forum= s_list_wrap{margin-top:4px;min-width:510px}#forums_top_links{clear:both;= margin-bottom:2px}#forums_wrap{clear:both;padding-top:1px}.cat_title{pad= ding:3px 8px 5px;margin-top:-1px;letter-spacing:1px;text-indent:0.6em;ba= ckground:#DEE3E7 url(../images/cellpic1.gif) repeat-x}.cat_title a{text-= decoration:none;color:#333333 !important}table.forums{width:100%}.forums= th{padding:0 !important;font-size:10px;font-weight:normal;color:#3C3C3C= }.forums td{padding:2px 4px 3px;font-size:11px}.forumlink{font-size:13px= ;font-weight:bold}.forumlink a{text-decoration:none}.forum_desc{margin-t= op:2px;color:#333333;font-size:11px;line-height:110%}.subforums{margin-t= op:2px;padding-left:0.5em}.dot-sf{color:#417998 !important;font-size:11p= x;margin-right:4px}.new .dot-sf{color:#CA4200 !important}.sf_title{white= -space:normal}.sf_icon{margin-right:1px}.sf_title a{text-decoration:none= }.forums thead{display:none}.f_icon{width:46px;padding:6px 0 !important}= .f-icon-idx{width:36px;padding:6px 0 !important;text-align:center}table.= forums{border-collapse:collapse}.cat_title{border:0 none;border-right:1p= x solid #FDFDFD;border-bottom:1px solid #CCD4DB}.forums td.row1{border:s= olid #FDFDFD;border-width:0 1px 1px 0}.forums td.row2{border:solid #F5F5= F5;border-width:0 1px 1px 0}.sb2-block{background:#F7F7F7;border:1px sol= id #EBEBEB;margin:0 0 4px 0;margin-top:-1px;padding:0 6px 0 0}.sb2-bg2{b= ackground:#F0F0F0}#idx-sidebar2{min-width:240px}#idx-sidebar2 h3{margin:= 4px 6px 9px 9px}#idx-sidebar2 ul{margin:6px 0 0 8px}#idx-sidebar2 li{mar= gin-bottom:6px;margin-left:14px}#idx-sidebar2 a{text-decoration:none;col= or:#004080;font-size:11px}#online_time{float:left;font-style:italic;colo= r:#444444}#online_explain{float:right}#online_userlist a{white-space:now= rap}.f-map-wrap{margin-top:-1px;border:1px solid #DEDEDE}table.forum th{= white-space:nowrap}td.topic_id{padding:4px 6px}.spaceRow{padding:0 !impo= rtant;background:#D1D7DC}td.topicSep{padding:2px 12px 3px;font-weight:bo= ld;letter-spacing:1px;color:#333333}.topicAnnounce{color:#DD6900}.topicS= ticky{color:#009900}.topicPoll{font-weight:normal;color:#006699}.topicPG= {font-weight:normal;white-space:nowrap;font-size:10px}.iconDL{border:1px= outset;background:#EFEFEF;padding:0px 3px 0px 2px;margin:2px 1px 2px 0p= x}.topicAuthor,a.topicAuthor,a.topicAuthor:visited{font-size:11px;color:= #333333;text-decoration:none}.torSize{font-size:11px;color:#333333;text-= decoration:none}tr.hl-tr:hover td{background-color:#F8F8F8 !important}.h= l-selected-row,.hl-selected-row td{background-color:#FAF0E6 !important}.= hl-sel-row-2,.hl-sel-row-2 td{background-color:#E4A5A5 !important}.hl-se= l-row-3,.hl-sel-row-3 td{background-color:#FBE8D6 !important}tr.hl-tr.hl= -sel-row-3:hover td{background-color:#FEF2E7 !important}table.topic{widt= h:100%}.post_head{padding:0 6px;font-size:10px}.post_wrap{margin:5px 5px= 8px;word-wrap:break-word}.post_body{line-height:18px}a.postLink{text-de= coration:none}a.postLink:visited{color:#5493B4}.post_body a[href*=3D"vie= wtopic"].postLink:visited span.p-color{color:#5493B4 !important}.posted_= since{color:#666666;padding-left:4px}.sig-body{max-height:100px;overflow= :hidden}.signature *{font-size:10px !important;font-weight:normal !impor= tant;text-decoration:none !important;color:#5E5E5E !important;background= :transparent !important;border-color:#9A9A9A !important;font-style:norma= l !important;font-family:Verdana,sans-serif !important}.signature .c-wra= p,.signature .q-wrap,.signature .sp-wrap,.signature .post-pre{display:no= ne !important}.signature img{max-width:600px;opacity:0.8;vertical-align:= -4px}.signature a,.signature a span{color:#5E5E5E !important;text-decora= tion:underline !important}.signature a:hover,.signature a:hover span{col= or:#000000 !important}.signature a:hover img{opacity:1}.sig-sep{clear:bo= th;width:142px;margin:20px 0 3px;border-bottom:1px #888888 solid !import= ant}.last_edited{font-size:10px;color:#5E5E5E}.poster_info p{margin:2px = 0;color:#444444}.poster_info .nick{margin:0 0 4px;color:#333333;line-hei= ght:110%;min-width:142px}.poster_info .avatar{margin:5px 0 4px;max-width= :100px;max-height:100px;overflow:hidden}.avatar img{display:block}.poste= r_info .flag{margin:4px 0}.poster_info em{font-style:normal;color:#00000= 0}table.topic,.topic .td1,.topic .td2,.topic .td3,.post_head,.post_btn_2= {border-style:solid;border-color:#C3CBD1}.topic .td1{border-width:1px 1p= x 0px 0px;border-right-color:#B7C0C5;min-width:142px}.topic .td2{border-= width:1px 0px 0px 0px;width:100%}.topic .td3{border-width:0px 1px 0px 0p= x;border-right-color:#B7C0C5;height:100%}.post_head{border-width:0px 0px= 1px 0px}.post_btn_2{border-width:1px 0px 0px 0px}table.topic{border-wid= th:0px 1px 1px 1px;border-color:#B7C0C5}.poster_info{padding:4px;vertica= l-align:top;font-size:10px;line-height:100%}.poster_btn{padding:0;vertic= al-align:bottom;text-align:center;white-space:nowrap}.message{padding:0;= vertical-align:top;width:100%}.dl_list td{text-align:center}.dl_list img= {display:block}#dl_counts td{font-size:12px}.hl-selected-post{background= -color:#FFEFD5 !important}.bn-topic img{vertical-align:middle}.post-time= {float:left;padding:4px 0 3px}.scrolled-to-post .post-time{padding:4px 0= }.scrolled-to-post .hl-scrolled-to-wrap{padding:2px 7px 1px 9px;margin-r= ight:4px;background:#E6EBEF;border:1px solid #8EA8C1;border-radius:2px}.= scrolled-to-post a.p-link{color:#00466C;font-size:11px;font-weight:bold;= letter-spacing:1px}.hl-cyrillic:hover{color:#006699 !important;text-deco= ration:none !important}.hl-cyrillic:hover>.cyr-symbol{color:#C21DD5 !imp= ortant}#poll{border:1px solid #B7C0C5;margin-bottom:-1px;padding:10px 10= % 0}.poll-vote-pics img{height:12px;vertical-align:middle}#poll-results-= block td{padding:0}#poll-results-block td.poll-vote-pics{padding:2px 8px= }#poll-votes-block td{padding:2px}#poll-votes-block input[type=3D"radio"= ]{vertical-align:middle}#poll-votes-block label{margin-bottom:1px}#vote-= btn-input{margin:10px 0 14px;text-align:center}.tor-status-td:hover{back= ground:#F8F8FF}.tor-icon{margin:0 3px}.tor-approved{margin-left:1px;colo= r:#008000;font-weight:bold}.tor-closed{padding-left:1px;color:#FF4500;fo= nt-weight:bold}.tor-closed-cp{color:#CE3800;font-weight:bold}.tor-consum= ed{color:#D26900;font-weight:bold}.tor-dup{padding-left:1px;color:#0000F= F;font-weight:bold}.tor-need-edit{color:#FF0000;font-weight:bold}.tor-no= -desc{padding-left:1px;color:#FF4500;font-weight:bold}.tor-not-approved{= color:#C71585}.tor-checking{color:#2424FF}select.hl-selected .selected{b= ackground:#EFEFEF;font-weight:bold !important}#tor-status-sel,#tor-type-= sel{font-size:13px}#tor-status-sel option,#tor-type-sel option{font-fami= ly:"Lucida Console", monospace;font-size:14px !important;border-top:3px = solid transparent;border-bottom:1px solid #DADADA}table.attach{width:95%= ;margin:0 auto;clear:both;border-color:#A5AFB4}.attach th,.attach td{bor= der-color:#A5AFB4}.attach th{padding:3px;text-align:center;font-weight:b= old;background:#D1D7DC}.attach td{padding:2px 4px}fieldset.attach{width:= 95%;margin:14px auto;padding:2px;clear:both}.attach_link{margin:2px 12px= 6px;font-weight:bold}.attach_link.guest{font-size:18px}.attach_link img= {vertical-align:text-bottom;padding-right:5px}.attach_link a{color:#A52A= 2A}.attach_comment{margin:6px 23px;padding:1px 10px 5px;line-height:16px= ;color:#444444;border-left:2px solid #CC9933}#file-up{padding-left:16px;= margin:2px 4px;background-image:url(../images/icon_attach.gif);backgroun= d-repeat:no-repeat;background-position:2px 1px}#tor_blocked{width:95%}#t= or_blocked td{background:#FAEBD7;padding:8px 12px;color:#6E380F}.opened{= color:#71869F}a.tr-dl,a.dl-link:link{font-weight:bold}a.dl-link{font-siz= e:13px;text-decoration:none}a.tr-dl:visited,a.f-dl:visited,a.dl-link:vis= ited{color:#5493B4;font-weight:normal}img.forum_icon{width:46px;height:2= 5px}img.topic_icon{width:19px;height:18px}img.pm_box_icon{width:28px;hei= ght:25px}img.icon1{width:12px;height:9px}img.icon2{width:18px;height:9px= }img.feed-small{width:12px;height:12px}.bottom_info{font-size:11px}.copy= right{font-size:11px;color:#444444}.copyright a{text-decoration:none}#ti= mezone{float:right;text-align:right;white-space:nowrap;font-size:10px;li= ne-height:110%;color:#333333}.tz_time{font-family:"Courier New",Courier,= monospace;font-size:11px}#f_icons_legend{margin:4px auto}.menu-root{padd= ing-right:13px;white-space:nowrap;background:transparent url(../images/m= enu_open.gif) no-repeat right}.menu-alt1{padding-right:0;background:tran= sparent}img.menu-alt1{width:9px;height:9px}a.menu-root,a.menu-root:visit= ed,a.menu-root:hover{text-decoration:none !important}.menu-sub{position:= absolute;display:none;z-index:1000}.menu-sub table{background:#FFFFFF;bo= rder:1px solid #92A3A4}.menu-sub table th{background:#71869F;color:#F0F8= FF;font-weight:bold;font-size:11px}.menu-sub table td{background:#E7E7E7= ;font-size:11px}.menu-sub table td.cat{background:#B5BEC3}.menu-sub lege= nd{font-weight:bold}.menu-sub label{display:block;padding-right:2px;marg= in-right:1px}.menu-sub label:hover{background:#D1D7DC;color:#993300}.men= u-a{background:#FFFFFF;border:1px solid #92A3A4}.menu-a a{color:#0000A0;= background:#E7E7E7;padding:4px 10px 5px;margin:1px;display:block;text-de= coration:none !important}.menu-a a:hover{color:#0000FF;background:#D1D7D= C;text-decoration:none !important}.gen-help-msg{padding:8px;border:1px s= olid #A5AFB4;background:#FFFFFF;font-size:12px;border-radius:6px;box-sha= dow:3px 3px 3px rgba(0,0,0,0.1)}#ajax-loading,#ajax-error{position:absol= ute;z-index:2000;padding:4px;font-size:11px;max-width:400px;max-height:2= 00px;white-space:nowrap;display:none}#ajax-loading{min-width:100px;backg= round:#2E8B57;color:#FFF5EE}#ajax-error{min-width:200px;background:#8B00= 00;color:#F5F5F5;overflow:auto}.editable-container{cursor:pointer}.edita= ble-container:hover{background:#E8E9F8}.loading-1{background:transparent= url(../images/loading_1.gif) no-repeat left center;padding-left:22px}.t= reeview,.treeview ul{padding:0;margin:0;list-style:none;font-size:11px;l= ine-height:14px}.treeview ul{margin-top:4px}.treeview .hitarea{backgroun= d:url(../images/treeview/treeview-default.gif) -64px -25px no-repeat;wid= th:16px;height:16px;margin-left:-16px;float:left;cursor:pointer}.treevie= w li{margin:0;padding:1px 0 1px 16px}.treeview span{padding-left:3px;dis= play:block}.treeview a.selected{background-color:#eee}#treecontrol{margi= n:1em 0;display:none}.treeview .hover{color:red;cursor:pointer}.treeview= li{background:url(../images/treeview/treeview-default-line.gif) 0 0 no-= repeat}.treeview li.collapsable,.treeview li.expandable{background-posit= ion:0 -176px}.treeview .expandable-hitarea{background-position:-80px -3p= x}.treeview li.last{background-position:0 -1766px}.treeview li.lastColla= psable,.treeview li.lastExpandable{background-image:url(../images/treevi= ew/treeview-default.gif)}.treeview li.lastCollapsable{background-positio= n:0 -111px}.treeview li.lastExpandable{background-position:-32px -67px}.= treeview div.lastCollapsable-hitarea,.treeview div.lastExpandable-hitare= a{background-position:0}.tablesorter u{display:none}.tablesorter .header= {cursor:pointer;white-space:nowrap}.tablesorter .tbs-text{padding-bottom= :1px}.headerSortUp .tbs-text,.headerSortDown .tbs-text{border-bottom-wid= th:2px;border-bottom-style:solid}.tbs-icon{padding-left:6px;background-i= mage:url(../images/tbl_sort_bg_1.gif);background-repeat:no-repeat;backgr= ound-position:4px 50%}.headerSortUp .tbs-icon{background-image:url(../im= ages/tbl_sort_asc_1.gif)}.headerSortDown .tbs-icon{background-image:url(= ../images/tbl_sort_desc_1.gif)}.sf{padding-left:20px !important}#jumpbox= -wrap{display:inline-block;margin:12px 0 6px}pre,.pre{font-family:Courie= r,monospace;font-size:12px;border:1px solid #B7C0C5;background:#F5F5F5;p= adding:4px;margin:10px;text-align:left}.pre{width:100%;overflow:auto;whi= te-space:nowrap}.die-pre{display:table;overflow:auto;white-space:nowrap;= text-align:left;margin:10px auto}.msg-ok{color:green;font-weight:bold}.m= sg-err,.msg-err a{color:red}ul.res-msg{line-height:17px;padding:10px 20p= x 10px 10px}ul.res-msg li{margin-bottom:3px}.ann{font-size:13px;text-ali= gn:center;color:#993300;font-weight:bold}.clickable{cursor:pointer}.fold= ed,.folded2{display:block;background:transparent url(../images/icon_plus= _1.gif) no-repeat left center;padding-left:14px}.unfolded,.unfolded2{dis= play:block;background:transparent url(../images/icon_minus_1.gif) no-rep= eat left center;padding-left:14px}.folded2{background-image:url(../image= s/icon_plus_2.gif)}.unfolded2{background-image:url(../images/icon_minus_= 2.gif)}.warnColor1{color:#993300}.warnColor2{color:#FF0000}.warnBorder1{= border:1px solid #A52A2A}.warningBox1{border:1px solid #A52A2A;backgroun= d:#F8F0E9;color:#993300;padding:12px}.warningBox2{color:#993300 !importa= nt;background:#FFD9B2;border:2px solid #CC6600;padding:8px}.hl-err-text,= .hl-err-block,.hl-err-input,.hl-non-1251{color:#FF0000 !important;font-w= eight:bold !important;background:#FFD9B2 !important}.hl-err-block{border= :2px solid #CC6600 !important}.hl-err-input,.hl-err-input:focus{outline:= 2px solid #CC6600 !important;outline-offset:-2px}.hl-non-1251{display:in= line-block;padding:2px 4px;margin:0 1px;font-style:normal}#old-browser-w= arn{background:#FFF227;padding:8px 0 10px;text-align:center;font-size:14= px;font-weight:bold}.m-link{display:inline-block;position:relative;paddi= ng:1px 15px 1px 0}.m-link a.postLink{padding:0;text-decoration:none !imp= ortant}.m-icon{display:none;position:absolute;top:50%;right:0;margin-top= :-6px;height:12px;width:12px;background:url(../images/icon_media_sprite.= png) no-repeat}.m-link:hover .m-icon-over-img{display:inline-block;top:9= px;right:16px;background-position:-11px;background-color:#FEFEFE;z-index= :1;width:18px;height:18px}.ttp-label{position:relative;display:inline-bl= ock;margin-right:2px;height:14px;padding:0 7px 0 16px;line-height:13px;b= order-radius:4px;color:#FFFFFF;font-weight:normal}.ttp-label:before{posi= tion:absolute;content:"";top:5px;left:6px;width:5px;height:5px;border-ra= dius:50%;background-color:#FFFFFF;box-shadow:-1px -1px 1px rgba(0,0,0,0.= 15) inset}.ttp-label.ttp-auth{background:#238F60}.ttp-label.ttp-antiq{ba= ckground:#588FE5}#adriver-240x120{width:240px;height:120px;padding-botto= m:2px;margin-right:-2px}#fs-nav-ul .b{font-weight:bold}#fs-nav-ul li{cur= sor:pointer}#fs-nav-ul span.f:hover{color:blue;background:#DEE2E4}#fs-na= v-list{border:3px double #9AA7AD;background:#EFEFEF;padding:8px;max-heig= ht:500px;overflow:auto}.top-alert{position:relative;width:950px;padding:= 13px 25px 12px;line-height:27px;border:1px solid #800000;border-radius:6= px;box-shadow:3px 3px 3px rgba(0,0,0,0.1);text-align:center;margin:16px = auto 2px}.ta-crit{background:#F1F0ED;border-color:#000000}.ta-crit a{col= or:#A80000}.ta-inf1{background:#DCE2E9;border-color:#A3ABB5}.ta-inf1 a{c= olor:#0B0E1F}.ta-inf2{background:#F5F1E8;border-color:#B19B68}.ta-inf2 a= {color:#090602}.ta-inf3{background:#EAE9F5;border-color:#ABB3BC}.ta-inf3= a{color:#020406}.ta-inf4{background:#FFF227;border-color:#B19B68}.ta-in= f4 a{color:#291F21}.top-alert a{font-size:18px;color:#690A1D !important}= .ta-hide-btn{position:absolute;top:-1px;right:8px;font-size:14px}.ta-hid= e-btn:hover{color:#f00}.magnet-link-16 img{vertical-align:text-bottom;pa= dding-right:4px}.spacer_0,.spacer_2,.spacer_4,.spacer_6,.spacer_8,.space= r_10,.spacer_12{font-size:0px;line-height:0px}.spacer_0{height:0px}.spac= er_2{height:2px}.spacer_4{height:4px}.spacer_6{height:6px}.spacer_8{heig= ht:8px}.spacer_10{height:10px}.spacer_12{height:12px}.pad_0,.pad_0 td,td= .pad_0{padding:0}.pad_2,.pad_2 td,td.pad_2{padding:2px}.pad_4,.pad_4 td,= td.pad_4{padding:4px}.pad_6,.pad_6 td,td.pad_6{padding:6px}.pad_8,.pad_8= td,td.pad_8{padding:8px}.pad_10,.pad_10 td,td.pad_10{padding:10px}.pad_= 12,.pad_12 td,td.pad_12{padding:12px}.pad_14,.pad_14 td,td.pad_14{paddin= g:14px}.pad_16,.pad_16 td,td.pad_16{padding:16px}.mrg_0{margin:0 !impo= rtant}.mrg_2{margin:2px !important}.mrg_4{margin:4px !important}.mrg_6{m= argin:6px !important}.mrg_8{margin:8px !important}.mrg_10{margin:10px !i= mportant}.mrg_12{margin:12px !important}.mrg_14{margin:14px !important}.= mrg_16{margin:16px !important}.lh_100{line-height:100%}.lh_110{line-heig= ht:110%}.lh_120{line-height:120%}.lh_150{line-height:150%}.wAuto{width:a= uto !important}.w10{width:10% !important}.w20{width:20% !important}.w30{= width:30% !important}.w40{width:40% !important}.w50{width:50% !important= }.w60{width:60% !important}.w70{width:70% !important}.w80{width:80% !imp= ortant}.w85{width:85% !important}.w90{width:90% !important}.w95{width:95= % !important}.w96{width:96% !important}.w97{width:97% !important}.w98{wi= dth:98% !important}.w99{width:99% !important}.w100{width:100% !important= }.border{border-style:solid;border-color:#B7C0C5}.bw_T{border-width:1px = 0px 0px 0px !important}.bw_TR{border-width:1px 1px 0px 0px !important}.b= w_TRB{border-width:1px 1px 1px 0px !important}.bw_TRBL{border-width:1px = 1px 1px 1px !important}.bw_TB{border-width:1px 0px 1px 0px !important}.b= w_TBL{border-width:1px 0px 1px 1px !important}.bw_TL{border-width:1px 0p= x 0px 1px !important}.bw_TRL{border-width:1px 1px 0px 1px !important}.bw= _R{border-width:0px 1px 0px 0px !important}.bw_RB{border-width:0px 1px 1= px 0px !important}.bw_RBL{border-width:0px 1px 1px 1px !important}.bw_RL= {border-width:0px 1px 0px 1px !important}.bw_B{border-width:0px 0px 1px = 0px !important}.bw_BL{border-width:0px 0px 1px 1px !important}.bw_L{bord= er-width:0px 0px 0px 1px !important}.bCenter{margin-left:auto !important= ;margin-right:auto !important}.bLeft{margin-right:auto !important}.block= {display:block}.bold{font-weight:bold}.bRight{margin-left:auto !importan= t}.clear{clear:both;height:0;font-size:0px;line-height:0px;overflow:hidd= en}.clearB{clear:both}.dCenter{display:table;margin-left:auto !important= ;margin-right:auto !important}.floatL{float:left}.floatR{float:right}.hi= dden{display:none}.inline{display:inline}.normal{font-weight:normal}.now= rap{white-space:nowrap !important}.strike{text-decoration:line-through}.= tCenter{text-align:center !important}.tLeft{text-align:left !important}.= tRight{text-align:right !important}.vBottom{vertical-align:bottom !impor= tant}.vMiddle{vertical-align:middle !important}.vTop{vertical-align:top = !important}.wbr{word-wrap:break-word}.wrap{white-space:normal !important= }.printable_th_post_head>a{padding-left:30px}.post_body_print{width:100%= !important}.print_border_top{border-top:2px #7c858a solid}#nav-panel{wi= dth:42px;opacity:1;position:fixed;top:50%;left:0;display:none;padding:0;= margin:-70px 0 0;background:#BDC5C8;border:1px solid #ABB0B3;border-left= :none;border-radius:0 5px 5px 0;cursor:pointer;z-index:2}div.nav-hidden-= arrow{background:#BDC5C8 url(../images/icon_nav_sprite_1.png) no-repeat = -32px 68px !important;opacity:0.7 !important;margin-left:-34px !importan= t}div.nav-hidden-arrow>div.nav-hidden-overlay{position:absolute;left:0;r= ight:0;top:0;bottom:0}div.nav-btn:hover{background-color:#B1B8BB}span.na= v-icon{display:block;width:24px;height:24px;background:url(../images/ico= n_nav_sprite_1.png) no-repeat}#nav-opt-menu{display:none;position:absolu= te;left:29px;top:-10px;width:200px;list-style:none;padding:0;background:= #BDC5C8;border:1px solid #ABB0B3}#nav-opt-menu>li{margin:0;padding:4px 1= 0px}#nav-opt-menu>li:hover{background-color:#B1B8BB;color:#FFFFFF}#nav-u= p{padding:17px 9px 18px 8px;border-radius:0 5px 0 0}#nav-down{padding:18= px 9px 17px 8px;border-radius:0 0 5px 0}#nav-settings{padding:2px 12px 2= px 11px;position:relative}#nav-up>span{background-position:0}#nav-down>s= pan{background-position:-24px}#nav-settings>span{background-position:-48= px 2px;width:18px;height:22px}#nav-up:active{box-shadow:0 -5px 7px rgba(= 0,0,0,0.15) inset}#nav-down:active{box-shadow:0 5px 7px rgba(0,0,0,0.15)= inset}#nav-settings:active{box-shadow:0 0 7px rgba(0,0,0,0.15) inset}#f= ooter-info-links{font-size:11px;font-weight:bold;text-align:center;paddi= ng:12px}#footer-info-links div{margin:10px}#footer-info-links a{margin:0= 4px}.modal{z-index:3;display:none;width:400px;border-radius:8px;box-sha= dow:0 0 10px #000;background:#E6E6E6}#modal-close-btn{display:block;posi= tion:absolute;background:url(../images/icon_close.png) no-repeat 0 0;top= :-19px;right:-19px;width:30px;height:30px}#modal-spinner{z-index:3;displ= ay:none;width:64px;height:64px;position:fixed;top:50%;right:50%;margin-r= ight:-32px;margin-top:-32px;background:url(../images/loading_4.gif) #111= no-repeat center center;border-radius:8px}#modal-blocker{z-index:2;posi= tion:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;backgrou= nd:#000000;opacity:0.75}.modal-video{border-radius:0}.acp-nav-frame tabl= e.forumline{margin:0 auto}.acp-nav-frame .catTitle{padding:2px 6px 3px;t= ext-align:left;font-size:11px;letter-spacing:0}.acp-nav-frame a,.acp-nav= -frame a:visited{text-decoration:none;font-size:11px}.acp #body_containe= r{padding:0 6px 4px}.acp h1,.acp h2,.acp h3{margin:0.8em 0;font-size:16p= x}.acp h4{margin:0.1em 0.2em;color:#273F61;font-size:11px;font-weight:bo= ld}.acp h5{margin:0.1em 0.6em;color:#333399;font-family:"Courier New"}.a= cp h6{margin:0.3em 0.6em;color:#444444;line-height:100%}.post-font-serif= 1{font-family:Georgia,"URW Bookman L",serif}.post-font-serif2{font-famil= y:"Palatino Linotype",Palatino,"URW Palladio L",serif}.post-font-sans1{f= ont-family:Arial,"Liberation Sans",sans-serif}.post-font-sans2{font-fami= ly:"Trebuchet MS","Nimbus Sans L",Tahoma,sans-serif}.post-font-sans3{fon= t-family:"Segoe UI","Gill Sans","FreeSans",Tahoma,sans-serif}.post-font-= mono1{font-family:"Lucida Console",monaco,"DejaVu Sans Mono",monospace}.= post-font-mono2{font-family:Consolas,"Andale Mono","Liberation Mono",mon= ospace}.post-font-cursive1{font-family:"Comic Sans MS","Comic Sans",sans= -serif}.post-font-impact{font-family:Impact,"URW Bookman L",Georgia,seri= f}option.post-font-mono1{padding-top:2px}.future-dls .row-selector{paddi= ng:0;margin:0}.future-dls td.row-selector label{padding:8px 10px 7px 12p= x}.future-dls th.row-selector label{padding:3px 3px 6px 5px}.future-dls = .topictitle{padding:3px 4px 4px 1px} ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline; filename=fdc9122523cdabea5b8bb5db0e50a0c0.all.min.js Content-Type: application/javascript; charset=utf-8; name=fdc9122523cdabea5b8bb5db0e50a0c0.all.min.js Content-Location: https://static.t-ru.org/templates/v1/min/fdc9122523cdabea5b8bb5db0e50a0c0.all.min.js Content-Transfer-Encoding: Base64 Oy8vIGpzL2xpYi9qcXVlcnkvanF1ZXJ5LmpzCiFmdW5jdGlvbihhLGIpeyJvYmpl Y3QiPT10eXBlb2YgbW9kdWxlJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZS5leHBv cnRzP21vZHVsZS5leHBvcnRzPWEuZG9jdW1lbnQ/YihhLCEwKTpmdW5jdGlvbihh KXtpZighYS5kb2N1bWVudCl0aHJvdyBuZXcgRXJyb3IoImpRdWVyeSByZXF1aXJl cyBhIHdpbmRvdyB3aXRoIGEgZG9jdW1lbnQiKTtyZXR1cm4gYihhKX06YihhKX0o InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93OnRoaXMsZnVuY3Rpb24o YSxiKXtmdW5jdGlvbiBjKGEpe3ZhciBiPSEhYSYmImxlbmd0aCJpbiBhJiZhLmxl bmd0aCxjPWZhLnR5cGUoYSk7cmV0dXJuImZ1bmN0aW9uIiE9PWMmJiFmYS5pc1dp bmRvdyhhKSYmKCJhcnJheSI9PT1jfHwwPT09Ynx8Im51bWJlciI9PXR5cGVvZiBi JiZiPjAmJmItMSBpbiBhKX1mdW5jdGlvbiBkKGEsYixjKXtpZihmYS5pc0Z1bmN0 aW9uKGIpKXJldHVybiBmYS5ncmVwKGEsZnVuY3Rpb24oYSxkKXtyZXR1cm4hIWIu Y2FsbChhLGQsYSkhPT1jfSk7aWYoYi5ub2RlVHlwZSlyZXR1cm4gZmEuZ3JlcChh LGZ1bmN0aW9uKGEpe3JldHVybiBhPT09YiE9PWN9KTtpZigic3RyaW5nIj09dHlw ZW9mIGIpe2lmKHBhLnRlc3QoYikpcmV0dXJuIGZhLmZpbHRlcihiLGEsYyk7Yj1m YS5maWx0ZXIoYixhKX1yZXR1cm4gZmEuZ3JlcChhLGZ1bmN0aW9uKGEpe3JldHVy biBfLmNhbGwoYixhKT4tMSE9PWN9KX1mdW5jdGlvbiBlKGEsYil7d2hpbGUoKGE9 YVtiXSkmJjEhPT1hLm5vZGVUeXBlKTtyZXR1cm4gYX1mdW5jdGlvbiBmKGEpe3Zh ciBiPXt9O3JldHVybiBmYS5lYWNoKGEubWF0Y2godmEpfHxbXSxmdW5jdGlvbihh LGMpe2JbY109ITB9KSxifWZ1bmN0aW9uIGcoKXtYLnJlbW92ZUV2ZW50TGlzdGVu ZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGcpLGEucmVtb3ZlRXZlbnRMaXN0ZW5lcigi bG9hZCIsZyksZmEucmVhZHkoKX1mdW5jdGlvbiBoKCl7dGhpcy5leHBhbmRvPWZh LmV4cGFuZG8raC51aWQrK31mdW5jdGlvbiBpKGEsYixjKXt2YXIgZDtpZih2b2lk IDA9PT1jJiYxPT09YS5ub2RlVHlwZSlpZihkPSJkYXRhLSIrYi5yZXBsYWNlKENh LCItJCYiKS50b0xvd2VyQ2FzZSgpLGM9YS5nZXRBdHRyaWJ1dGUoZCksInN0cmlu ZyI9PXR5cGVvZiBjKXt0cnl7Yz0idHJ1ZSI9PT1jfHwiZmFsc2UiIT09YyYmKCJu dWxsIj09PWM/bnVsbDorYysiIj09PWM/K2M6QmEudGVzdChjKT9mYS5wYXJzZUpT T04oYyk6Yyl9Y2F0Y2goZSl7fUFhLnNldChhLGIsYyl9ZWxzZSBjPXZvaWQgMDty ZXR1cm4gY31mdW5jdGlvbiBqKGEsYixjLGQpe3ZhciBlLGY9MSxnPTIwLGg9ZD9m dW5jdGlvbigpe3JldHVybiBkLmN1cigpfTpmdW5jdGlvbigpe3JldHVybiBmYS5j c3MoYSxiLCIiKX0saT1oKCksaj1jJiZjWzNdfHwoZmEuY3NzTnVtYmVyW2JdPyIi OiJweCIpLGs9KGZhLmNzc051bWJlcltiXXx8InB4IiE9PWomJitpKSYmRWEuZXhl YyhmYS5jc3MoYSxiKSk7aWYoayYma1szXSE9PWope2o9anx8a1szXSxjPWN8fFtd LGs9K2l8fDE7ZG8gZj1mfHwiLjUiLGsvPWYsZmEuc3R5bGUoYSxiLGsraik7d2hp bGUoZiE9PShmPWgoKS9pKSYmMSE9PWYmJi0tZyl9cmV0dXJuIGMmJihrPStrfHwr aXx8MCxlPWNbMV0/aysoY1sxXSsxKSpjWzJdOitjWzJdLGQmJihkLnVuaXQ9aixk LnN0YXJ0PWssZC5lbmQ9ZSkpLGV9ZnVuY3Rpb24gayhhLGIpe3ZhciBjPSJ1bmRl ZmluZWQiIT10eXBlb2YgYS5nZXRFbGVtZW50c0J5VGFnTmFtZT9hLmdldEVsZW1l bnRzQnlUYWdOYW1lKGJ8fCIqIik6InVuZGVmaW5lZCIhPXR5cGVvZiBhLnF1ZXJ5 U2VsZWN0b3JBbGw/YS5xdWVyeVNlbGVjdG9yQWxsKGJ8fCIqIik6W107cmV0dXJu IHZvaWQgMD09PWJ8fGImJmZhLm5vZGVOYW1lKGEsYik/ZmEubWVyZ2UoW2FdLGMp OmN9ZnVuY3Rpb24gbChhLGIpe2Zvcih2YXIgYz0wLGQ9YS5sZW5ndGg7YzxkO2Mr Kyl6YS5zZXQoYVtjXSwiZ2xvYmFsRXZhbCIsIWJ8fHphLmdldChiW2NdLCJnbG9i YWxFdmFsIikpfWZ1bmN0aW9uIG0oYSxiLGMsZCxlKXtmb3IodmFyIGYsZyxoLGks aixtLG49Yi5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksbz1bXSxwPTAscT1hLmxl bmd0aDtwPHE7cCsrKWlmKGY9YVtwXSxmfHwwPT09ZilpZigib2JqZWN0Ij09PWZh LnR5cGUoZikpZmEubWVyZ2UobyxmLm5vZGVUeXBlP1tmXTpmKTtlbHNlIGlmKExh LnRlc3QoZikpe2c9Z3x8bi5hcHBlbmRDaGlsZChiLmNyZWF0ZUVsZW1lbnQoImRp diIpKSxoPShJYS5leGVjKGYpfHxbIiIsIiJdKVsxXS50b0xvd2VyQ2FzZSgpLGk9 S2FbaF18fEthLl9kZWZhdWx0LGcuaW5uZXJIVE1MPWlbMV0rZmEuaHRtbFByZWZp bHRlcihmKStpWzJdLG09aVswXTt3aGlsZShtLS0pZz1nLmxhc3RDaGlsZDtmYS5t ZXJnZShvLGcuY2hpbGROb2RlcyksZz1uLmZpcnN0Q2hpbGQsZy50ZXh0Q29udGVu dD0iIn1lbHNlIG8ucHVzaChiLmNyZWF0ZVRleHROb2RlKGYpKTtuLnRleHRDb250 ZW50PSIiLHA9MDt3aGlsZShmPW9bcCsrXSlpZihkJiZmYS5pbkFycmF5KGYsZCk+ LTEpZSYmZS5wdXNoKGYpO2Vsc2UgaWYoaj1mYS5jb250YWlucyhmLm93bmVyRG9j dW1lbnQsZiksZz1rKG4uYXBwZW5kQ2hpbGQoZiksInNjcmlwdCIpLGomJmwoZyks Yyl7bT0wO3doaWxlKGY9Z1ttKytdKUphLnRlc3QoZi50eXBlfHwiIikmJmMucHVz aChmKX1yZXR1cm4gbn1mdW5jdGlvbiBuKCl7cmV0dXJuITB9ZnVuY3Rpb24gbygp e3JldHVybiExfWZ1bmN0aW9uIHAoKXt0cnl7cmV0dXJuIFguYWN0aXZlRWxlbWVu dH1jYXRjaChhKXt9fWZ1bmN0aW9uIHEoYSxiLGMsZCxlLGYpe3ZhciBnLGg7aWYo Im9iamVjdCI9PXR5cGVvZiBiKXsic3RyaW5nIiE9dHlwZW9mIGMmJihkPWR8fGMs Yz12b2lkIDApO2ZvcihoIGluIGIpcShhLGgsYyxkLGJbaF0sZik7cmV0dXJuIGF9 aWYobnVsbD09ZCYmbnVsbD09ZT8oZT1jLGQ9Yz12b2lkIDApOm51bGw9PWUmJigi c3RyaW5nIj09dHlwZW9mIGM/KGU9ZCxkPXZvaWQgMCk6KGU9ZCxkPWMsYz12b2lk IDApKSxlPT09ITEpZT1vO2Vsc2UgaWYoIWUpcmV0dXJuIGE7cmV0dXJuIDE9PT1m JiYoZz1lLGU9ZnVuY3Rpb24oYSl7cmV0dXJuIGZhKCkub2ZmKGEpLGcuYXBwbHko dGhpcyxhcmd1bWVudHMpfSxlLmd1aWQ9Zy5ndWlkfHwoZy5ndWlkPWZhLmd1aWQr KykpLGEuZWFjaChmdW5jdGlvbigpe2ZhLmV2ZW50LmFkZCh0aGlzLGIsZSxkLGMp fSl9ZnVuY3Rpb24gcihhLGIpe3JldHVybiBmYS5ub2RlTmFtZShhLCJ0YWJsZSIp JiZmYS5ub2RlTmFtZSgxMSE9PWIubm9kZVR5cGU/YjpiLmZpcnN0Q2hpbGQsInRy Iik/YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGJvZHkiKVswXXx8YS5hcHBlbmRD aGlsZChhLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKSk6YX1m dW5jdGlvbiBzKGEpe3JldHVybiBhLnR5cGU9KG51bGwhPT1hLmdldEF0dHJpYnV0 ZSgidHlwZSIpKSsiLyIrYS50eXBlLGF9ZnVuY3Rpb24gdChhKXt2YXIgYj1TYS5l eGVjKGEudHlwZSk7cmV0dXJuIGI/YS50eXBlPWJbMV06YS5yZW1vdmVBdHRyaWJ1 dGUoInR5cGUiKSxhfWZ1bmN0aW9uIHUoYSxiKXt2YXIgYyxkLGUsZixnLGgsaSxq O2lmKDE9PT1iLm5vZGVUeXBlKXtpZih6YS5oYXNEYXRhKGEpJiYoZj16YS5hY2Nl c3MoYSksZz16YS5zZXQoYixmKSxqPWYuZXZlbnRzKSl7ZGVsZXRlIGcuaGFuZGxl LGcuZXZlbnRzPXt9O2ZvcihlIGluIGopZm9yKGM9MCxkPWpbZV0ubGVuZ3RoO2M8 ZDtjKyspZmEuZXZlbnQuYWRkKGIsZSxqW2VdW2NdKX1BYS5oYXNEYXRhKGEpJiYo aD1BYS5hY2Nlc3MoYSksaT1mYS5leHRlbmQoe30saCksQWEuc2V0KGIsaSkpfX1m dW5jdGlvbiB2KGEsYil7dmFyIGM9Yi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpOyJp bnB1dCI9PT1jJiZIYS50ZXN0KGEudHlwZSk/Yi5jaGVja2VkPWEuY2hlY2tlZDoi aW5wdXQiIT09YyYmInRleHRhcmVhIiE9PWN8fChiLmRlZmF1bHRWYWx1ZT1hLmRl ZmF1bHRWYWx1ZSl9ZnVuY3Rpb24gdyhhLGIsYyxkKXtiPVouYXBwbHkoW10sYik7 dmFyIGUsZixnLGgsaSxqLGw9MCxuPWEubGVuZ3RoLG89bi0xLHA9YlswXSxxPWZh LmlzRnVuY3Rpb24ocCk7aWYocXx8bj4xJiYic3RyaW5nIj09dHlwZW9mIHAmJiFk YS5jaGVja0Nsb25lJiZSYS50ZXN0KHApKXJldHVybiBhLmVhY2goZnVuY3Rpb24o ZSl7dmFyIGY9YS5lcShlKTtxJiYoYlswXT1wLmNhbGwodGhpcyxlLGYuaHRtbCgp KSksdyhmLGIsYyxkKX0pO2lmKG4mJihlPW0oYixhWzBdLm93bmVyRG9jdW1lbnQs ITEsYSxkKSxmPWUuZmlyc3RDaGlsZCwxPT09ZS5jaGlsZE5vZGVzLmxlbmd0aCYm KGU9ZiksZnx8ZCkpe2ZvcihnPWZhLm1hcChrKGUsInNjcmlwdCIpLHMpLGg9Zy5s ZW5ndGg7bDxuO2wrKylpPWUsbCE9PW8mJihpPWZhLmNsb25lKGksITAsITApLGgm JmZhLm1lcmdlKGcsayhpLCJzY3JpcHQiKSkpLGMuY2FsbChhW2xdLGksbCk7aWYo aClmb3Ioaj1nW2cubGVuZ3RoLTFdLm93bmVyRG9jdW1lbnQsZmEubWFwKGcsdCks bD0wO2w8aDtsKyspaT1nW2xdLEphLnRlc3QoaS50eXBlfHwiIikmJiF6YS5hY2Nl c3MoaSwiZ2xvYmFsRXZhbCIpJiZmYS5jb250YWlucyhqLGkpJiYoaS5zcmM/ZmEu X2V2YWxVcmwmJmZhLl9ldmFsVXJsKGkuc3JjKTpmYS5nbG9iYWxFdmFsKGkudGV4 dENvbnRlbnQucmVwbGFjZShUYSwiIikpKX1yZXR1cm4gYX1mdW5jdGlvbiB4KGEs YixjKXtmb3IodmFyIGQsZT1iP2ZhLmZpbHRlcihiLGEpOmEsZj0wO251bGwhPShk PWVbZl0pO2YrKyljfHwxIT09ZC5ub2RlVHlwZXx8ZmEuY2xlYW5EYXRhKGsoZCkp LGQucGFyZW50Tm9kZSYmKGMmJmZhLmNvbnRhaW5zKGQub3duZXJEb2N1bWVudCxk KSYmbChrKGQsInNjcmlwdCIpKSxkLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZCkp O3JldHVybiBhfWZ1bmN0aW9uIHkoYSxiKXt2YXIgYz1mYShiLmNyZWF0ZUVsZW1l bnQoYSkpLmFwcGVuZFRvKGIuYm9keSksZD1mYS5jc3MoY1swXSwiZGlzcGxheSIp O3JldHVybiBjLmRldGFjaCgpLGR9ZnVuY3Rpb24geihhKXt2YXIgYj1YLGM9VmFb YV07cmV0dXJuIGN8fChjPXkoYSxiKSwibm9uZSIhPT1jJiZjfHwoVWE9KFVhfHxm YSgiPGlmcmFtZSBmcmFtZWJvcmRlcj0nMCcgd2lkdGg9JzAnIGhlaWdodD0nMCcv PiIpKS5hcHBlbmRUbyhiLmRvY3VtZW50RWxlbWVudCksYj1VYVswXS5jb250ZW50 RG9jdW1lbnQsYi53cml0ZSgpLGIuY2xvc2UoKSxjPXkoYSxiKSxVYS5kZXRhY2go KSksVmFbYV09YyksY31mdW5jdGlvbiBBKGEsYixjKXt2YXIgZCxlLGYsZyxoPWEu c3R5bGU7cmV0dXJuIGM9Y3x8WWEoYSksZz1jP2MuZ2V0UHJvcGVydHlWYWx1ZShi KXx8Y1tiXTp2b2lkIDAsIiIhPT1nJiZ2b2lkIDAhPT1nfHxmYS5jb250YWlucyhh Lm93bmVyRG9jdW1lbnQsYSl8fChnPWZhLnN0eWxlKGEsYikpLGMmJiFkYS5waXhl bE1hcmdpblJpZ2h0KCkmJlhhLnRlc3QoZykmJldhLnRlc3QoYikmJihkPWgud2lk dGgsZT1oLm1pbldpZHRoLGY9aC5tYXhXaWR0aCxoLm1pbldpZHRoPWgubWF4V2lk dGg9aC53aWR0aD1nLGc9Yy53aWR0aCxoLndpZHRoPWQsaC5taW5XaWR0aD1lLGgu bWF4V2lkdGg9Ziksdm9pZCAwIT09Zz9nKyIiOmd9ZnVuY3Rpb24gQihhLGIpe3Jl dHVybntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpP3ZvaWQgZGVsZXRlIHRoaXMu Z2V0Oih0aGlzLmdldD1iKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX1mdW5jdGlv biBDKGEpe2lmKGEgaW4gZGIpcmV0dXJuIGE7dmFyIGI9YVswXS50b1VwcGVyQ2Fz ZSgpK2Euc2xpY2UoMSksYz1jYi5sZW5ndGg7d2hpbGUoYy0tKWlmKGE9Y2JbY10r YixhIGluIGRiKXJldHVybiBhfWZ1bmN0aW9uIEQoYSxiLGMpe3ZhciBkPUVhLmV4 ZWMoYik7cmV0dXJuIGQ/TWF0aC5tYXgoMCxkWzJdLShjfHwwKSkrKGRbM118fCJw eCIpOmJ9ZnVuY3Rpb24gRShhLGIsYyxkLGUpe2Zvcih2YXIgZj1jPT09KGQ/ImJv cmRlciI6ImNvbnRlbnQiKT80OiJ3aWR0aCI9PT1iPzE6MCxnPTA7Zjw0O2YrPTIp Im1hcmdpbiI9PT1jJiYoZys9ZmEuY3NzKGEsYytGYVtmXSwhMCxlKSksZD8oImNv bnRlbnQiPT09YyYmKGctPWZhLmNzcyhhLCJwYWRkaW5nIitGYVtmXSwhMCxlKSks Im1hcmdpbiIhPT1jJiYoZy09ZmEuY3NzKGEsImJvcmRlciIrRmFbZl0rIldpZHRo IiwhMCxlKSkpOihnKz1mYS5jc3MoYSwicGFkZGluZyIrRmFbZl0sITAsZSksInBh ZGRpbmciIT09YyYmKGcrPWZhLmNzcyhhLCJib3JkZXIiK0ZhW2ZdKyJXaWR0aCIs ITAsZSkpKTtyZXR1cm4gZ31mdW5jdGlvbiBGKGIsYyxkKXt2YXIgZT0hMCxmPSJ3 aWR0aCI9PT1jP2Iub2Zmc2V0V2lkdGg6Yi5vZmZzZXRIZWlnaHQsZz1ZYShiKSxo PSJib3JkZXItYm94Ij09PWZhLmNzcyhiLCJib3hTaXppbmciLCExLGcpO2lmKFgu bXNGdWxsc2NyZWVuRWxlbWVudCYmYS50b3AhPT1hJiZiLmdldENsaWVudFJlY3Rz KCkubGVuZ3RoJiYoZj1NYXRoLnJvdW5kKDEwMCpiLmdldEJvdW5kaW5nQ2xpZW50 UmVjdCgpW2NdKSksZjw9MHx8bnVsbD09Zil7aWYoZj1BKGIsYyxnKSwoZjwwfHxu dWxsPT1mKSYmKGY9Yi5zdHlsZVtjXSksWGEudGVzdChmKSlyZXR1cm4gZjtlPWgm JihkYS5ib3hTaXppbmdSZWxpYWJsZSgpfHxmPT09Yi5zdHlsZVtjXSksZj1wYXJz ZUZsb2F0KGYpfHwwfXJldHVybiBmK0UoYixjLGR8fChoPyJib3JkZXIiOiJjb250 ZW50IiksZSxnKSsicHgifWZ1bmN0aW9uIEcoYSxiKXtmb3IodmFyIGMsZCxlLGY9 W10sZz0wLGg9YS5sZW5ndGg7ZzxoO2crKylkPWFbZ10sZC5zdHlsZSYmKGZbZ109 emEuZ2V0KGQsIm9sZGRpc3BsYXkiKSxjPWQuc3R5bGUuZGlzcGxheSxiPyhmW2dd fHwibm9uZSIhPT1jfHwoZC5zdHlsZS5kaXNwbGF5PSIiKSwiIj09PWQuc3R5bGUu ZGlzcGxheSYmR2EoZCkmJihmW2ddPXphLmFjY2VzcyhkLCJvbGRkaXNwbGF5Iix6 KGQubm9kZU5hbWUpKSkpOihlPUdhKGQpLCJub25lIj09PWMmJmV8fHphLnNldChk LCJvbGRkaXNwbGF5IixlP2M6ZmEuY3NzKGQsImRpc3BsYXkiKSkpKTtmb3IoZz0w O2c8aDtnKyspZD1hW2ddLGQuc3R5bGUmJihiJiYibm9uZSIhPT1kLnN0eWxlLmRp c3BsYXkmJiIiIT09ZC5zdHlsZS5kaXNwbGF5fHwoZC5zdHlsZS5kaXNwbGF5PWI/ ZltnXXx8IiI6Im5vbmUiKSk7cmV0dXJuIGF9ZnVuY3Rpb24gSChhLGIsYyxkLGUp e3JldHVybiBuZXcgSC5wcm90b3R5cGUuaW5pdChhLGIsYyxkLGUpfWZ1bmN0aW9u IEkoKXtyZXR1cm4gYS5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZWI9dm9pZCAwfSks ZWI9ZmEubm93KCl9ZnVuY3Rpb24gSihhLGIpe3ZhciBjLGQ9MCxlPXtoZWlnaHQ6 YX07Zm9yKGI9Yj8xOjA7ZDw0O2QrPTItYiljPUZhW2RdLGVbIm1hcmdpbiIrY109 ZVsicGFkZGluZyIrY109YTtyZXR1cm4gYiYmKGUub3BhY2l0eT1lLndpZHRoPWEp LGV9ZnVuY3Rpb24gSyhhLGIsYyl7Zm9yKHZhciBkLGU9KE4udHdlZW5lcnNbYl18 fFtdKS5jb25jYXQoTi50d2VlbmVyc1siKiJdKSxmPTAsZz1lLmxlbmd0aDtmPGc7 ZisrKWlmKGQ9ZVtmXS5jYWxsKGMsYixhKSlyZXR1cm4gZH1mdW5jdGlvbiBMKGEs YixjKXt2YXIgZCxlLGYsZyxoLGksaixrLGw9dGhpcyxtPXt9LG49YS5zdHlsZSxv PWEubm9kZVR5cGUmJkdhKGEpLHA9emEuZ2V0KGEsImZ4c2hvdyIpO2MucXVldWV8 fChoPWZhLl9xdWV1ZUhvb2tzKGEsImZ4IiksbnVsbD09aC51bnF1ZXVlZCYmKGgu dW5xdWV1ZWQ9MCxpPWguZW1wdHkuZmlyZSxoLmVtcHR5LmZpcmU9ZnVuY3Rpb24o KXtoLnVucXVldWVkfHxpKCl9KSxoLnVucXVldWVkKyssbC5hbHdheXMoZnVuY3Rp b24oKXtsLmFsd2F5cyhmdW5jdGlvbigpe2gudW5xdWV1ZWQtLSxmYS5xdWV1ZShh LCJmeCIpLmxlbmd0aHx8aC5lbXB0eS5maXJlKCl9KX0pKSwxPT09YS5ub2RlVHlw ZSYmKCJoZWlnaHQiaW4gYnx8IndpZHRoImluIGIpJiYoYy5vdmVyZmxvdz1bbi5v dmVyZmxvdyxuLm92ZXJmbG93WCxuLm92ZXJmbG93WV0saj1mYS5jc3MoYSwiZGlz cGxheSIpLGs9Im5vbmUiPT09aj96YS5nZXQoYSwib2xkZGlzcGxheSIpfHx6KGEu bm9kZU5hbWUpOmosImlubGluZSI9PT1rJiYibm9uZSI9PT1mYS5jc3MoYSwiZmxv YXQiKSYmKG4uZGlzcGxheT0iaW5saW5lLWJsb2NrIikpLGMub3ZlcmZsb3cmJihu Lm92ZXJmbG93PSJoaWRkZW4iLGwuYWx3YXlzKGZ1bmN0aW9uKCl7bi5vdmVyZmxv dz1jLm92ZXJmbG93WzBdLG4ub3ZlcmZsb3dYPWMub3ZlcmZsb3dbMV0sbi5vdmVy Zmxvd1k9Yy5vdmVyZmxvd1syXX0pKTtmb3IoZCBpbiBiKWlmKGU9YltkXSxnYi5l eGVjKGUpKXtpZihkZWxldGUgYltkXSxmPWZ8fCJ0b2dnbGUiPT09ZSxlPT09KG8/ ImhpZGUiOiJzaG93Iikpe2lmKCJzaG93IiE9PWV8fCFwfHx2b2lkIDA9PT1wW2Rd KWNvbnRpbnVlO289ITB9bVtkXT1wJiZwW2RdfHxmYS5zdHlsZShhLGQpfWVsc2Ug aj12b2lkIDA7aWYoZmEuaXNFbXB0eU9iamVjdChtKSkiaW5saW5lIj09PSgibm9u ZSI9PT1qP3ooYS5ub2RlTmFtZSk6aikmJihuLmRpc3BsYXk9aik7ZWxzZXtwPyJo aWRkZW4iaW4gcCYmKG89cC5oaWRkZW4pOnA9emEuYWNjZXNzKGEsImZ4c2hvdyIs e30pLGYmJihwLmhpZGRlbj0hbyksbz9mYShhKS5zaG93KCk6bC5kb25lKGZ1bmN0 aW9uKCl7ZmEoYSkuaGlkZSgpfSksbC5kb25lKGZ1bmN0aW9uKCl7dmFyIGI7emEu cmVtb3ZlKGEsImZ4c2hvdyIpO2ZvcihiIGluIG0pZmEuc3R5bGUoYSxiLG1bYl0p fSk7Zm9yKGQgaW4gbSlnPUsobz9wW2RdOjAsZCxsKSxkIGluIHB8fChwW2RdPWcu c3RhcnQsbyYmKGcuZW5kPWcuc3RhcnQsZy5zdGFydD0id2lkdGgiPT09ZHx8Imhl aWdodCI9PT1kPzE6MCkpfX1mdW5jdGlvbiBNKGEsYil7dmFyIGMsZCxlLGYsZztm b3IoYyBpbiBhKWlmKGQ9ZmEuY2FtZWxDYXNlKGMpLGU9YltkXSxmPWFbY10sZmEu aXNBcnJheShmKSYmKGU9ZlsxXSxmPWFbY109ZlswXSksYyE9PWQmJihhW2RdPWYs ZGVsZXRlIGFbY10pLGc9ZmEuY3NzSG9va3NbZF0sZyYmImV4cGFuZCJpbiBnKXtm PWcuZXhwYW5kKGYpLGRlbGV0ZSBhW2RdO2ZvcihjIGluIGYpYyBpbiBhfHwoYVtj XT1mW2NdLGJbY109ZSl9ZWxzZSBiW2RdPWV9ZnVuY3Rpb24gTihhLGIsYyl7dmFy IGQsZSxmPTAsZz1OLnByZWZpbHRlcnMubGVuZ3RoLGg9ZmEuRGVmZXJyZWQoKS5h bHdheXMoZnVuY3Rpb24oKXtkZWxldGUgaS5lbGVtfSksaT1mdW5jdGlvbigpe2lm KGUpcmV0dXJuITE7Zm9yKHZhciBiPWVifHxJKCksYz1NYXRoLm1heCgwLGouc3Rh cnRUaW1lK2ouZHVyYXRpb24tYiksZD1jL2ouZHVyYXRpb258fDAsZj0xLWQsZz0w LGk9ai50d2VlbnMubGVuZ3RoO2c8aTtnKyspai50d2VlbnNbZ10ucnVuKGYpO3Jl dHVybiBoLm5vdGlmeVdpdGgoYSxbaixmLGNdKSxmPDEmJmk/YzooaC5yZXNvbHZl V2l0aChhLFtqXSksITEpfSxqPWgucHJvbWlzZSh7ZWxlbTphLHByb3BzOmZhLmV4 dGVuZCh7fSxiKSxvcHRzOmZhLmV4dGVuZCghMCx7c3BlY2lhbEVhc2luZzp7fSxl YXNpbmc6ZmEuZWFzaW5nLl9kZWZhdWx0fSxjKSxvcmlnaW5hbFByb3BlcnRpZXM6 YixvcmlnaW5hbE9wdGlvbnM6YyxzdGFydFRpbWU6ZWJ8fEkoKSxkdXJhdGlvbjpj LmR1cmF0aW9uLHR3ZWVuczpbXSxjcmVhdGVUd2VlbjpmdW5jdGlvbihiLGMpe3Zh ciBkPWZhLlR3ZWVuKGEsai5vcHRzLGIsYyxqLm9wdHMuc3BlY2lhbEVhc2luZ1ti XXx8ai5vcHRzLmVhc2luZyk7cmV0dXJuIGoudHdlZW5zLnB1c2goZCksZH0sc3Rv cDpmdW5jdGlvbihiKXt2YXIgYz0wLGQ9Yj9qLnR3ZWVucy5sZW5ndGg6MDtpZihl KXJldHVybiB0aGlzO2ZvcihlPSEwO2M8ZDtjKyspai50d2VlbnNbY10ucnVuKDEp O3JldHVybiBiPyhoLm5vdGlmeVdpdGgoYSxbaiwxLDBdKSxoLnJlc29sdmVXaXRo KGEsW2osYl0pKTpoLnJlamVjdFdpdGgoYSxbaixiXSksdGhpc319KSxrPWoucHJv cHM7Zm9yKE0oayxqLm9wdHMuc3BlY2lhbEVhc2luZyk7ZjxnO2YrKylpZihkPU4u cHJlZmlsdGVyc1tmXS5jYWxsKGosYSxrLGoub3B0cykpcmV0dXJuIGZhLmlzRnVu Y3Rpb24oZC5zdG9wKSYmKGZhLl9xdWV1ZUhvb2tzKGouZWxlbSxqLm9wdHMucXVl dWUpLnN0b3A9ZmEucHJveHkoZC5zdG9wLGQpKSxkO3JldHVybiBmYS5tYXAoayxL LGopLGZhLmlzRnVuY3Rpb24oai5vcHRzLnN0YXJ0KSYmai5vcHRzLnN0YXJ0LmNh bGwoYSxqKSxmYS5meC50aW1lcihmYS5leHRlbmQoaSx7ZWxlbTphLGFuaW06aixx dWV1ZTpqLm9wdHMucXVldWV9KSksai5wcm9ncmVzcyhqLm9wdHMucHJvZ3Jlc3Mp LmRvbmUoai5vcHRzLmRvbmUsai5vcHRzLmNvbXBsZXRlKS5mYWlsKGoub3B0cy5m YWlsKS5hbHdheXMoai5vcHRzLmFsd2F5cyl9ZnVuY3Rpb24gTyhhKXtyZXR1cm4g YS5nZXRBdHRyaWJ1dGUmJmEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIn1mdW5j dGlvbiBQKGEpe3JldHVybiBmdW5jdGlvbihiLGMpeyJzdHJpbmciIT10eXBlb2Yg YiYmKGM9YixiPSIqIik7dmFyIGQsZT0wLGY9Yi50b0xvd2VyQ2FzZSgpLm1hdGNo KHZhKXx8W107aWYoZmEuaXNGdW5jdGlvbihjKSl3aGlsZShkPWZbZSsrXSkiKyI9 PT1kWzBdPyhkPWQuc2xpY2UoMSl8fCIqIiwoYVtkXT1hW2RdfHxbXSkudW5zaGlm dChjKSk6KGFbZF09YVtkXXx8W10pLnB1c2goYyl9fWZ1bmN0aW9uIFEoYSxiLGMs ZCl7ZnVuY3Rpb24gZShoKXt2YXIgaTtyZXR1cm4gZltoXT0hMCxmYS5lYWNoKGFb aF18fFtdLGZ1bmN0aW9uKGEsaCl7dmFyIGo9aChiLGMsZCk7cmV0dXJuInN0cmlu ZyIhPXR5cGVvZiBqfHxnfHxmW2pdP2c/IShpPWopOnZvaWQgMDooYi5kYXRhVHlw ZXMudW5zaGlmdChqKSxlKGopLCExKX0pLGl9dmFyIGY9e30sZz1hPT09QWI7cmV0 dXJuIGUoYi5kYXRhVHlwZXNbMF0pfHwhZlsiKiJdJiZlKCIqIil9ZnVuY3Rpb24g UihhLGIpe3ZhciBjLGQsZT1mYS5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9 O2ZvcihjIGluIGIpdm9pZCAwIT09YltjXSYmKChlW2NdP2E6ZHx8KGQ9e30pKVtj XT1iW2NdKTtyZXR1cm4gZCYmZmEuZXh0ZW5kKCEwLGEsZCksYX1mdW5jdGlvbiBT KGEsYixjKXt2YXIgZCxlLGYsZyxoPWEuY29udGVudHMsaT1hLmRhdGFUeXBlczt3 aGlsZSgiKiI9PT1pWzBdKWkuc2hpZnQoKSx2b2lkIDA9PT1kJiYoZD1hLm1pbWVU eXBlfHxiLmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKSk7aWYoZClm b3IoZSBpbiBoKWlmKGhbZV0mJmhbZV0udGVzdChkKSl7aS51bnNoaWZ0KGUpO2Jy ZWFrfWlmKGlbMF1pbiBjKWY9aVswXTtlbHNle2ZvcihlIGluIGMpe2lmKCFpWzBd fHxhLmNvbnZlcnRlcnNbZSsiICIraVswXV0pe2Y9ZTticmVha31nfHwoZz1lKX1m PWZ8fGd9aWYoZilyZXR1cm4gZiE9PWlbMF0mJmkudW5zaGlmdChmKSxjW2ZdfWZ1 bmN0aW9uIFQoYSxiLGMsZCl7dmFyIGUsZixnLGgsaSxqPXt9LGs9YS5kYXRhVHlw ZXMuc2xpY2UoKTtpZihrWzFdKWZvcihnIGluIGEuY29udmVydGVycylqW2cudG9M b3dlckNhc2UoKV09YS5jb252ZXJ0ZXJzW2ddO2Y9ay5zaGlmdCgpO3doaWxlKGYp aWYoYS5yZXNwb25zZUZpZWxkc1tmXSYmKGNbYS5yZXNwb25zZUZpZWxkc1tmXV09 YiksIWkmJmQmJmEuZGF0YUZpbHRlciYmKGI9YS5kYXRhRmlsdGVyKGIsYS5kYXRh VHlwZSkpLGk9ZixmPWsuc2hpZnQoKSlpZigiKiI9PT1mKWY9aTtlbHNlIGlmKCIq IiE9PWkmJmkhPT1mKXtpZihnPWpbaSsiICIrZl18fGpbIiogIitmXSwhZylmb3Io ZSBpbiBqKWlmKGg9ZS5zcGxpdCgiICIpLGhbMV09PT1mJiYoZz1qW2krIiAiK2hb MF1dfHxqWyIqICIraFswXV0pKXtnPT09ITA/Zz1qW2VdOmpbZV0hPT0hMCYmKGY9 aFswXSxrLnVuc2hpZnQoaFsxXSkpO2JyZWFrfWlmKGchPT0hMClpZihnJiZhWyJ0 aHJvd3MiXSliPWcoYik7ZWxzZSB0cnl7Yj1nKGIpfWNhdGNoKGwpe3JldHVybntz dGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOmc/bDoiTm8gY29udmVyc2lvbiBmcm9t ICIraSsiIHRvICIrZn19fXJldHVybntzdGF0ZToic3VjY2VzcyIsZGF0YTpifX1m dW5jdGlvbiBVKGEsYixjLGQpe3ZhciBlO2lmKGZhLmlzQXJyYXkoYikpZmEuZWFj aChiLGZ1bmN0aW9uKGIsZSl7Y3x8RWIudGVzdChhKT9kKGEsZSk6VShhKyJbIiso Im9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT1lP2I6IiIpKyJdIixlLGMsZCl9KTtl bHNlIGlmKGN8fCJvYmplY3QiIT09ZmEudHlwZShiKSlkKGEsYik7ZWxzZSBmb3Io ZSBpbiBiKVUoYSsiWyIrZSsiXSIsYltlXSxjLGQpfWZ1bmN0aW9uIFYoYSl7cmV0 dXJuIGZhLmlzV2luZG93KGEpP2E6OT09PWEubm9kZVR5cGUmJmEuZGVmYXVsdFZp ZXd9dmFyIFc9W10sWD1hLmRvY3VtZW50LFk9Vy5zbGljZSxaPVcuY29uY2F0LCQ9 Vy5wdXNoLF89Vy5pbmRleE9mLGFhPXt9LGJhPWFhLnRvU3RyaW5nLGNhPWFhLmhh c093blByb3BlcnR5LGRhPXt9LGVhPSIyLjIuMyIsZmE9ZnVuY3Rpb24oYSxiKXty ZXR1cm4gbmV3IGZhLmZuLmluaXQoYSxiKX0sZ2E9L15bXHNcdUZFRkZceEEwXSt8 W1xzXHVGRUZGXHhBMF0rJC9nLGhhPS9eLW1zLS8saWE9Ly0oW1xkYS16XSkvZ2ks amE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYi50b1VwcGVyQ2FzZSgpfTtmYS5mbj1m YS5wcm90b3R5cGU9e2pxdWVyeTplYSxjb25zdHJ1Y3RvcjpmYSxzZWxlY3Rvcjoi IixsZW5ndGg6MCx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIFkuY2FsbCh0aGlz KX0sZ2V0OmZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hP2E8MD90aGlzW2ErdGhp cy5sZW5ndGhdOnRoaXNbYV06WS5jYWxsKHRoaXMpfSxwdXNoU3RhY2s6ZnVuY3Rp b24oYSl7dmFyIGI9ZmEubWVyZ2UodGhpcy5jb25zdHJ1Y3RvcigpLGEpO3JldHVy biBiLnByZXZPYmplY3Q9dGhpcyxiLmNvbnRleHQ9dGhpcy5jb250ZXh0LGJ9LGVh Y2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGZhLmVhY2godGhpcyxhKX0sbWFwOmZ1bmN0 aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhmYS5tYXAodGhpcyxmdW5jdGlv bihiLGMpe3JldHVybiBhLmNhbGwoYixjLGIpfSkpfSxzbGljZTpmdW5jdGlvbigp e3JldHVybiB0aGlzLnB1c2hTdGFjayhZLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9 LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rp b24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGVxOmZ1bmN0aW9uKGEpe3ZhciBiPXRo aXMubGVuZ3RoLGM9K2ErKGE8MD9iOjApO3JldHVybiB0aGlzLnB1c2hTdGFjayhj Pj0wJiZjPGI/W3RoaXNbY11dOltdKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRo aXMucHJldk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcigpfSxwdXNoOiQsc29ydDpX LnNvcnQsc3BsaWNlOlcuc3BsaWNlfSxmYS5leHRlbmQ9ZmEuZm4uZXh0ZW5kPWZ1 bmN0aW9uKCl7dmFyIGEsYixjLGQsZSxmLGc9YXJndW1lbnRzWzBdfHx7fSxoPTEs aT1hcmd1bWVudHMubGVuZ3RoLGo9ITE7Zm9yKCJib29sZWFuIj09dHlwZW9mIGcm JihqPWcsZz1hcmd1bWVudHNbaF18fHt9LGgrKyksIm9iamVjdCI9PXR5cGVvZiBn fHxmYS5pc0Z1bmN0aW9uKGcpfHwoZz17fSksaD09PWkmJihnPXRoaXMsaC0tKTto PGk7aCsrKWlmKG51bGwhPShhPWFyZ3VtZW50c1toXSkpZm9yKGIgaW4gYSljPWdb Yl0sZD1hW2JdLGchPT1kJiYoaiYmZCYmKGZhLmlzUGxhaW5PYmplY3QoZCl8fChl PWZhLmlzQXJyYXkoZCkpKT8oZT8oZT0hMSxmPWMmJmZhLmlzQXJyYXkoYyk/Yzpb XSk6Zj1jJiZmYS5pc1BsYWluT2JqZWN0KGMpP2M6e30sZ1tiXT1mYS5leHRlbmQo aixmLGQpKTp2b2lkIDAhPT1kJiYoZ1tiXT1kKSk7cmV0dXJuIGd9LGZhLmV4dGVu ZCh7ZXhwYW5kbzoialF1ZXJ5IisoZWErTWF0aC5yYW5kb20oKSkucmVwbGFjZSgv XEQvZywiIiksaXNSZWFkeTohMCxlcnJvcjpmdW5jdGlvbihhKXt0aHJvdyBuZXcg RXJyb3IoYSl9LG5vb3A6ZnVuY3Rpb24oKXt9LGlzRnVuY3Rpb246ZnVuY3Rpb24o YSl7cmV0dXJuImZ1bmN0aW9uIj09PWZhLnR5cGUoYSl9LGlzQXJyYXk6QXJyYXku aXNBcnJheSxpc1dpbmRvdzpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YSYmYT09 PWEud2luZG93fSxpc051bWVyaWM6ZnVuY3Rpb24oYSl7dmFyIGI9YSYmYS50b1N0 cmluZygpO3JldHVybiFmYS5pc0FycmF5KGEpJiZiLXBhcnNlRmxvYXQoYikrMT49 MH0saXNQbGFpbk9iamVjdDpmdW5jdGlvbihhKXt2YXIgYjtpZigib2JqZWN0IiE9 PWZhLnR5cGUoYSl8fGEubm9kZVR5cGV8fGZhLmlzV2luZG93KGEpKXJldHVybiEx O2lmKGEuY29uc3RydWN0b3ImJiFjYS5jYWxsKGEsImNvbnN0cnVjdG9yIikmJiFj YS5jYWxsKGEuY29uc3RydWN0b3IucHJvdG90eXBlfHx7fSwiaXNQcm90b3R5cGVP ZiIpKXJldHVybiExO2ZvcihiIGluIGEpO3JldHVybiB2b2lkIDA9PT1ifHxjYS5j YWxsKGEsYil9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oYSl7dmFyIGI7Zm9yKGIg aW4gYSlyZXR1cm4hMTtyZXR1cm4hMH0sdHlwZTpmdW5jdGlvbihhKXtyZXR1cm4g bnVsbD09YT9hKyIiOiJvYmplY3QiPT10eXBlb2YgYXx8ImZ1bmN0aW9uIj09dHlw ZW9mIGE/YWFbYmEuY2FsbChhKV18fCJvYmplY3QiOnR5cGVvZiBhfSxnbG9iYWxF dmFsOmZ1bmN0aW9uKGEpe3ZhciBiLGM9ZXZhbDthPWZhLnRyaW0oYSksYSYmKDE9 PT1hLmluZGV4T2YoInVzZSBzdHJpY3QiKT8oYj1YLmNyZWF0ZUVsZW1lbnQoInNj cmlwdCIpLGIudGV4dD1hLFguaGVhZC5hcHBlbmRDaGlsZChiKS5wYXJlbnROb2Rl LnJlbW92ZUNoaWxkKGIpKTpjKGEpKX0sY2FtZWxDYXNlOmZ1bmN0aW9uKGEpe3Jl dHVybiBhLnJlcGxhY2UoaGEsIm1zLSIpLnJlcGxhY2UoaWEsamEpfSxub2RlTmFt ZTpmdW5jdGlvbihhLGIpe3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRv TG93ZXJDYXNlKCk9PT1iLnRvTG93ZXJDYXNlKCl9LGVhY2g6ZnVuY3Rpb24oYSxi KXt2YXIgZCxlPTA7aWYoYyhhKSl7Zm9yKGQ9YS5sZW5ndGg7ZTxkO2UrKylpZihi LmNhbGwoYVtlXSxlLGFbZV0pPT09ITEpYnJlYWt9ZWxzZSBmb3IoZSBpbiBhKWlm KGIuY2FsbChhW2VdLGUsYVtlXSk9PT0hMSlicmVhaztyZXR1cm4gYX0sdHJpbTpm dW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT8iIjooYSsiIikucmVwbGFjZShnYSwi Iil9LG1ha2VBcnJheTpmdW5jdGlvbihhLGIpe3ZhciBkPWJ8fFtdO3JldHVybiBu dWxsIT1hJiYoYyhPYmplY3QoYSkpP2ZhLm1lcmdlKGQsInN0cmluZyI9PXR5cGVv ZiBhP1thXTphKTokLmNhbGwoZCxhKSksZH0saW5BcnJheTpmdW5jdGlvbihhLGIs Yyl7cmV0dXJuIG51bGw9PWI/LTE6Xy5jYWxsKGIsYSxjKX0sbWVyZ2U6ZnVuY3Rp b24oYSxiKXtmb3IodmFyIGM9K2IubGVuZ3RoLGQ9MCxlPWEubGVuZ3RoO2Q8Yztk KyspYVtlKytdPWJbZF07cmV0dXJuIGEubGVuZ3RoPWUsYX0sZ3JlcDpmdW5jdGlv bihhLGIsYyl7Zm9yKHZhciBkLGU9W10sZj0wLGc9YS5sZW5ndGgsaD0hYztmPGc7 ZisrKWQ9IWIoYVtmXSxmKSxkIT09aCYmZS5wdXNoKGFbZl0pO3JldHVybiBlfSxt YXA6ZnVuY3Rpb24oYSxiLGQpe3ZhciBlLGYsZz0wLGg9W107aWYoYyhhKSlmb3Io ZT1hLmxlbmd0aDtnPGU7ZysrKWY9YihhW2ddLGcsZCksbnVsbCE9ZiYmaC5wdXNo KGYpO2Vsc2UgZm9yKGcgaW4gYSlmPWIoYVtnXSxnLGQpLG51bGwhPWYmJmgucHVz aChmKTtyZXR1cm4gWi5hcHBseShbXSxoKX0sZ3VpZDoxLHByb3h5OmZ1bmN0aW9u KGEsYil7dmFyIGMsZCxlO2lmKCJzdHJpbmciPT10eXBlb2YgYiYmKGM9YVtiXSxi PWEsYT1jKSxmYS5pc0Z1bmN0aW9uKGEpKXJldHVybiBkPVkuY2FsbChhcmd1bWVu dHMsMiksZT1mdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KGJ8fHRoaXMsZC5jb25j YXQoWS5jYWxsKGFyZ3VtZW50cykpKX0sZS5ndWlkPWEuZ3VpZD1hLmd1aWR8fGZh Lmd1aWQrKyxlfSxub3c6RGF0ZS5ub3csc3VwcG9ydDpkYX0pLCJmdW5jdGlvbiI9 PXR5cGVvZiBTeW1ib2wmJihmYS5mbltTeW1ib2wuaXRlcmF0b3JdPVdbU3ltYm9s Lml0ZXJhdG9yXSksZmEuZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0 aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvciBTeW1ib2wiLnNwbGl0 KCIgIiksZnVuY3Rpb24oYSxiKXthYVsiW29iamVjdCAiK2IrIl0iXT1iLnRvTG93 ZXJDYXNlKCl9KTt2YXIga2E9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihhLGIsYyxk KXt2YXIgZSxmLGcsaCxpLGosbCxuLG89YiYmYi5vd25lckRvY3VtZW50LHA9Yj9i Lm5vZGVUeXBlOjk7aWYoYz1jfHxbXSwic3RyaW5nIiE9dHlwZW9mIGF8fCFhfHwx IT09cCYmOSE9PXAmJjExIT09cClyZXR1cm4gYztpZighZCYmKChiP2Iub3duZXJE b2N1bWVudHx8YjpPKSE9PUcmJkYoYiksYj1ifHxHLEkpKXtpZigxMSE9PXAmJihq PXJhLmV4ZWMoYSkpKWlmKGU9alsxXSl7aWYoOT09PXApe2lmKCEoZz1iLmdldEVs ZW1lbnRCeUlkKGUpKSlyZXR1cm4gYztpZihnLmlkPT09ZSlyZXR1cm4gYy5wdXNo KGcpLGN9ZWxzZSBpZihvJiYoZz1vLmdldEVsZW1lbnRCeUlkKGUpKSYmTShiLGcp JiZnLmlkPT09ZSlyZXR1cm4gYy5wdXNoKGcpLGN9ZWxzZXtpZihqWzJdKXJldHVy biAkLmFwcGx5KGMsYi5nZXRFbGVtZW50c0J5VGFnTmFtZShhKSksYztpZigoZT1q WzNdKSYmdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZiLmdldEVsZW1lbnRzQnlD bGFzc05hbWUpcmV0dXJuICQuYXBwbHkoYyxiLmdldEVsZW1lbnRzQnlDbGFzc05h bWUoZSkpLGN9aWYodi5xc2EmJiFUW2ErIiAiXSYmKCFKfHwhSi50ZXN0KGEpKSl7 aWYoMSE9PXApbz1iLG49YTtlbHNlIGlmKCJvYmplY3QiIT09Yi5ub2RlTmFtZS50 b0xvd2VyQ2FzZSgpKXsoaD1iLmdldEF0dHJpYnV0ZSgiaWQiKSk/aD1oLnJlcGxh Y2UodGEsIlxcJCYiKTpiLnNldEF0dHJpYnV0ZSgiaWQiLGg9TiksbD16KGEpLGY9 bC5sZW5ndGgsaT1tYS50ZXN0KGgpPyIjIitoOiJbaWQ9JyIraCsiJ10iO3doaWxl KGYtLSlsW2ZdPWkrIiAiK20obFtmXSk7bj1sLmpvaW4oIiwiKSxvPXNhLnRlc3Qo YSkmJmsoYi5wYXJlbnROb2RlKXx8Yn1pZihuKXRyeXtyZXR1cm4gJC5hcHBseShj LG8ucXVlcnlTZWxlY3RvckFsbChuKSksY31jYXRjaChxKXt9ZmluYWxseXtoPT09 TiYmYi5yZW1vdmVBdHRyaWJ1dGUoImlkIil9fX1yZXR1cm4gQihhLnJlcGxhY2Uo aGEsIiQxIiksYixjLGQpfWZ1bmN0aW9uIGMoKXtmdW5jdGlvbiBhKGMsZCl7cmV0 dXJuIGIucHVzaChjKyIgIik+dy5jYWNoZUxlbmd0aCYmZGVsZXRlIGFbYi5zaGlm dCgpXSxhW2MrIiAiXT1kfXZhciBiPVtdO3JldHVybiBhfWZ1bmN0aW9uIGQoYSl7 cmV0dXJuIGFbTl09ITAsYX1mdW5jdGlvbiBlKGEpe3ZhciBiPUcuY3JlYXRlRWxl bWVudCgiZGl2Iik7dHJ5e3JldHVybiEhYShiKX1jYXRjaChjKXtyZXR1cm4hMX1m aW5hbGx5e2IucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGIp LGI9bnVsbH19ZnVuY3Rpb24gZihhLGIpe3ZhciBjPWEuc3BsaXQoInwiKSxkPWMu bGVuZ3RoO3doaWxlKGQtLSl3LmF0dHJIYW5kbGVbY1tkXV09Yn1mdW5jdGlvbiBn KGEsYil7dmFyIGM9YiYmYSxkPWMmJjE9PT1hLm5vZGVUeXBlJiYxPT09Yi5ub2Rl VHlwZSYmKH5iLnNvdXJjZUluZGV4fHxWKS0ofmEuc291cmNlSW5kZXh8fFYpO2lm KGQpcmV0dXJuIGQ7aWYoYyl3aGlsZShjPWMubmV4dFNpYmxpbmcpaWYoYz09PWIp cmV0dXJuLTE7cmV0dXJuIGE/MTotMX1mdW5jdGlvbiBoKGEpe3JldHVybiBmdW5j dGlvbihiKXt2YXIgYz1iLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlu cHV0Ij09PWMmJmIudHlwZT09PWF9fWZ1bmN0aW9uIGkoYSl7cmV0dXJuIGZ1bmN0 aW9uKGIpe3ZhciBjPWIubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4oImlu cHV0Ij09PWN8fCJidXR0b24iPT09YykmJmIudHlwZT09PWF9fWZ1bmN0aW9uIGoo YSl7cmV0dXJuIGQoZnVuY3Rpb24oYil7cmV0dXJuIGI9K2IsZChmdW5jdGlvbihj LGQpe3ZhciBlLGY9YShbXSxjLmxlbmd0aCxiKSxnPWYubGVuZ3RoO3doaWxlKGct LSljW2U9ZltnXV0mJihjW2VdPSEoZFtlXT1jW2VdKSl9KX0pfWZ1bmN0aW9uIGso YSl7cmV0dXJuIGEmJiJ1bmRlZmluZWQiIT10eXBlb2YgYS5nZXRFbGVtZW50c0J5 VGFnTmFtZSYmYX1mdW5jdGlvbiBsKCl7fWZ1bmN0aW9uIG0oYSl7Zm9yKHZhciBi PTAsYz1hLmxlbmd0aCxkPSIiO2I8YztiKyspZCs9YVtiXS52YWx1ZTtyZXR1cm4g ZH1mdW5jdGlvbiBuKGEsYixjKXt2YXIgZD1iLmRpcixlPWMmJiJwYXJlbnROb2Rl Ij09PWQsZj1RKys7cmV0dXJuIGIuZmlyc3Q/ZnVuY3Rpb24oYixjLGYpe3doaWxl KGI9YltkXSlpZigxPT09Yi5ub2RlVHlwZXx8ZSlyZXR1cm4gYShiLGMsZil9OmZ1 bmN0aW9uKGIsYyxnKXt2YXIgaCxpLGosaz1bUCxmXTtpZihnKXt3aGlsZShiPWJb ZF0paWYoKDE9PT1iLm5vZGVUeXBlfHxlKSYmYShiLGMsZykpcmV0dXJuITB9ZWxz ZSB3aGlsZShiPWJbZF0paWYoMT09PWIubm9kZVR5cGV8fGUpe2lmKGo9YltOXXx8 KGJbTl09e30pLGk9altiLnVuaXF1ZUlEXXx8KGpbYi51bmlxdWVJRF09e30pLCho PWlbZF0pJiZoWzBdPT09UCYmaFsxXT09PWYpcmV0dXJuIGtbMl09aFsyXTtpZihp W2RdPWssa1syXT1hKGIsYyxnKSlyZXR1cm4hMH19fWZ1bmN0aW9uIG8oYSl7cmV0 dXJuIGEubGVuZ3RoPjE/ZnVuY3Rpb24oYixjLGQpe3ZhciBlPWEubGVuZ3RoO3do aWxlKGUtLSlpZighYVtlXShiLGMsZCkpcmV0dXJuITE7cmV0dXJuITB9OmFbMF19 ZnVuY3Rpb24gcChhLGMsZCl7Zm9yKHZhciBlPTAsZj1jLmxlbmd0aDtlPGY7ZSsr KWIoYSxjW2VdLGQpO3JldHVybiBkfWZ1bmN0aW9uIHEoYSxiLGMsZCxlKXtmb3Io dmFyIGYsZz1bXSxoPTAsaT1hLmxlbmd0aCxqPW51bGwhPWI7aDxpO2grKykoZj1h W2hdKSYmKGMmJiFjKGYsZCxlKXx8KGcucHVzaChmKSxqJiZiLnB1c2goaCkpKTty ZXR1cm4gZ31mdW5jdGlvbiByKGEsYixjLGUsZixnKXtyZXR1cm4gZSYmIWVbTl0m JihlPXIoZSkpLGYmJiFmW05dJiYoZj1yKGYsZykpLGQoZnVuY3Rpb24oZCxnLGgs aSl7dmFyIGosayxsLG09W10sbj1bXSxvPWcubGVuZ3RoLHI9ZHx8cChifHwiKiIs aC5ub2RlVHlwZT9baF06aCxbXSkscz0hYXx8IWQmJmI/cjpxKHIsbSxhLGgsaSks dD1jP2Z8fChkP2E6b3x8ZSk/W106ZzpzO2lmKGMmJmMocyx0LGgsaSksZSl7aj1x KHQsbiksZShqLFtdLGgsaSksaz1qLmxlbmd0aDt3aGlsZShrLS0pKGw9altrXSkm Jih0W25ba11dPSEoc1tuW2tdXT1sKSl9aWYoZCl7aWYoZnx8YSl7aWYoZil7aj1b XSxrPXQubGVuZ3RoO3doaWxlKGstLSkobD10W2tdKSYmai5wdXNoKHNba109bCk7 ZihudWxsLHQ9W10saixpKX1rPXQubGVuZ3RoO3doaWxlKGstLSkobD10W2tdKSYm KGo9Zj9hYShkLGwpOm1ba10pPi0xJiYoZFtqXT0hKGdbal09bCkpfX1lbHNlIHQ9 cSh0PT09Zz90LnNwbGljZShvLHQubGVuZ3RoKTp0KSxmP2YobnVsbCxnLHQsaSk6 JC5hcHBseShnLHQpfSl9ZnVuY3Rpb24gcyhhKXtmb3IodmFyIGIsYyxkLGU9YS5s ZW5ndGgsZj13LnJlbGF0aXZlW2FbMF0udHlwZV0sZz1mfHx3LnJlbGF0aXZlWyIg Il0saD1mPzE6MCxpPW4oZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1ifSxnLCEwKSxq PW4oZnVuY3Rpb24oYSl7cmV0dXJuIGFhKGIsYSk+LTF9LGcsITApLGs9W2Z1bmN0 aW9uKGEsYyxkKXt2YXIgZT0hZiYmKGR8fGMhPT1DKXx8KChiPWMpLm5vZGVUeXBl P2koYSxjLGQpOmooYSxjLGQpKTtyZXR1cm4gYj1udWxsLGV9XTtoPGU7aCsrKWlm KGM9dy5yZWxhdGl2ZVthW2hdLnR5cGVdKWs9W24obyhrKSxjKV07ZWxzZXtpZihj PXcuZmlsdGVyW2FbaF0udHlwZV0uYXBwbHkobnVsbCxhW2hdLm1hdGNoZXMpLGNb Tl0pe2ZvcihkPSsraDtkPGU7ZCsrKWlmKHcucmVsYXRpdmVbYVtkXS50eXBlXSli cmVhaztyZXR1cm4gcihoPjEmJm8oayksaD4xJiZtKGEuc2xpY2UoMCxoLTEpLmNv bmNhdCh7dmFsdWU6IiAiPT09YVtoLTJdLnR5cGU/IioiOiIifSkpLnJlcGxhY2Uo aGEsIiQxIiksYyxoPGQmJnMoYS5zbGljZShoLGQpKSxkPGUmJnMoYT1hLnNsaWNl KGQpKSxkPGUmJm0oYSkpfWsucHVzaChjKX1yZXR1cm4gbyhrKX1mdW5jdGlvbiB0 KGEsYyl7dmFyIGU9Yy5sZW5ndGg+MCxmPWEubGVuZ3RoPjAsZz1mdW5jdGlvbihk LGcsaCxpLGope3ZhciBrLGwsbSxuPTAsbz0iMCIscD1kJiZbXSxyPVtdLHM9Qyx0 PWR8fGYmJncuZmluZC5UQUcoIioiLGopLHU9UCs9bnVsbD09cz8xOk1hdGgucmFu ZG9tKCl8fC4xLHY9dC5sZW5ndGg7Zm9yKGomJihDPWc9PT1HfHxnfHxqKTtvIT09 diYmbnVsbCE9KGs9dFtvXSk7bysrKXtpZihmJiZrKXtsPTAsZ3x8ay5vd25lckRv Y3VtZW50PT09R3x8KEYoayksaD0hSSk7d2hpbGUobT1hW2wrK10paWYobShrLGd8 fEcsaCkpe2kucHVzaChrKTticmVha31qJiYoUD11KX1lJiYoKGs9IW0mJmspJiZu LS0sZCYmcC5wdXNoKGspKX1pZihuKz1vLGUmJm8hPT1uKXtsPTA7d2hpbGUobT1j W2wrK10pbShwLHIsZyxoKTtpZihkKXtpZihuPjApd2hpbGUoby0tKXBbb118fHJb b118fChyW29dPVkuY2FsbChpKSk7cj1xKHIpfSQuYXBwbHkoaSxyKSxqJiYhZCYm ci5sZW5ndGg+MCYmbitjLmxlbmd0aD4xJiZiLnVuaXF1ZVNvcnQoaSl9cmV0dXJu IGomJihQPXUsQz1zKSxwfTtyZXR1cm4gZT9kKGcpOmd9dmFyIHUsdix3LHgseSx6 LEEsQixDLEQsRSxGLEcsSCxJLEosSyxMLE0sTj0ic2l6emxlIisxKm5ldyBEYXRl LE89YS5kb2N1bWVudCxQPTAsUT0wLFI9YygpLFM9YygpLFQ9YygpLFU9ZnVuY3Rp b24oYSxiKXtyZXR1cm4gYT09PWImJihFPSEwKSwwfSxWPTE8PDMxLFc9e30uaGFz T3duUHJvcGVydHksWD1bXSxZPVgucG9wLFo9WC5wdXNoLCQ9WC5wdXNoLF89WC5z bGljZSxhYT1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0wLGQ9YS5sZW5ndGg7Yzxk O2MrKylpZihhW2NdPT09YilyZXR1cm4gYztyZXR1cm4tMX0sYmE9ImNoZWNrZWR8 c2VsZWN0ZWR8YXN5bmN8YXV0b2ZvY3VzfGF1dG9wbGF5fGNvbnRyb2xzfGRlZmVy fGRpc2FibGVkfGhpZGRlbnxpc21hcHxsb29wfG11bHRpcGxlfG9wZW58cmVhZG9u bHl8cmVxdWlyZWR8c2NvcGVkIixjYT0iW1xceDIwXFx0XFxyXFxuXFxmXSIsZGE9 Iig/OlxcXFwufFtcXHctXXxbXlxceDAwLVxceGEwXSkrIixlYT0iXFxbIitjYSsi KigiK2RhKyIpKD86IitjYSsiKihbKl4kfCF+XT89KSIrY2ErIiooPzonKCg/Olxc XFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcInwoIitk YSsiKSl8KSIrY2ErIipcXF0iLGZhPSI6KCIrZGErIikoPzpcXCgoKCcoKD86XFxc XC58W15cXFxcJ10pKiknfFwiKCg/OlxcXFwufFteXFxcXFwiXSkqKVwiKXwoKD86 XFxcXC58W15cXFxcKClbXFxdXXwiK2VhKyIpKil8LiopXFwpfCkiLGdhPW5ldyBS ZWdFeHAoY2ErIisiLCJnIiksaGE9bmV3IFJlZ0V4cCgiXiIrY2ErIit8KCg/Ol58 W15cXFxcXSkoPzpcXFxcLikqKSIrY2ErIiskIiwiZyIpLGlhPW5ldyBSZWdFeHAo Il4iK2NhKyIqLCIrY2ErIioiKSxqYT1uZXcgUmVnRXhwKCJeIitjYSsiKihbPit+ XXwiK2NhKyIpIitjYSsiKiIpLGthPW5ldyBSZWdFeHAoIj0iK2NhKyIqKFteXFxd J1wiXSo/KSIrY2ErIipcXF0iLCJnIiksbGE9bmV3IFJlZ0V4cChmYSksbWE9bmV3 IFJlZ0V4cCgiXiIrZGErIiQiKSxuYT17SUQ6bmV3IFJlZ0V4cCgiXiMoIitkYSsi KSIpLENMQVNTOm5ldyBSZWdFeHAoIl5cXC4oIitkYSsiKSIpLFRBRzpuZXcgUmVn RXhwKCJeKCIrZGErInxbKl0pIiksQVRUUjpuZXcgUmVnRXhwKCJeIitlYSksUFNF VURPOm5ldyBSZWdFeHAoIl4iK2ZhKSxDSElMRDpuZXcgUmVnRXhwKCJeOihvbmx5 fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXCgi K2NhKyIqKGV2ZW58b2RkfCgoWystXXwpKFxcZCopbnwpIitjYSsiKig/OihbKy1d fCkiK2NhKyIqKFxcZCspfCkpIitjYSsiKlxcKXwpIiwiaSIpLGJvb2w6bmV3IFJl Z0V4cCgiXig/OiIrYmErIikkIiwiaSIpLG5lZWRzQ29udGV4dDpuZXcgUmVnRXhw KCJeIitjYSsiKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxh c3QpKD86XFwoIitjYSsiKigoPzotXFxkKT9cXGQqKSIrY2ErIipcXCl8KSg/PVte LV18JCkiLCJpIil9LG9hPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRv bikkL2kscGE9L15oXGQkL2kscWE9L15bXntdK1x7XHMqXFtuYXRpdmUgXHcvLHJh PS9eKD86IyhbXHctXSspfChcdyspfFwuKFtcdy1dKykpJC8sc2E9L1srfl0vLHRh PS8nfFxcL2csdWE9bmV3IFJlZ0V4cCgiXFxcXChbXFxkYS1mXXsxLDZ9IitjYSsi P3woIitjYSsiKXwuKSIsImlnIiksdmE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPSIw eCIrYi02NTUzNjtyZXR1cm4gZCE9PWR8fGM/YjpkPDA/U3RyaW5nLmZyb21DaGFy Q29kZShkKzY1NTM2KTpTdHJpbmcuZnJvbUNoYXJDb2RlKGQ+PjEwfDU1Mjk2LDEw MjMmZHw1NjMyMCl9LHdhPWZ1bmN0aW9uKCl7RigpfTt0cnl7JC5hcHBseShYPV8u Y2FsbChPLmNoaWxkTm9kZXMpLE8uY2hpbGROb2RlcyksWFtPLmNoaWxkTm9kZXMu bGVuZ3RoXS5ub2RlVHlwZX1jYXRjaCh4YSl7JD17YXBwbHk6WC5sZW5ndGg/ZnVu Y3Rpb24oYSxiKXtaLmFwcGx5KGEsXy5jYWxsKGIpKX06ZnVuY3Rpb24oYSxiKXt2 YXIgYz1hLmxlbmd0aCxkPTA7d2hpbGUoYVtjKytdPWJbZCsrXSk7YS5sZW5ndGg9 Yy0xfX19dj1iLnN1cHBvcnQ9e30seT1iLmlzWE1MPWZ1bmN0aW9uKGEpe3ZhciBi PWEmJihhLm93bmVyRG9jdW1lbnR8fGEpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4h IWImJiJIVE1MIiE9PWIubm9kZU5hbWV9LEY9Yi5zZXREb2N1bWVudD1mdW5jdGlv bihhKXt2YXIgYixjLGQ9YT9hLm93bmVyRG9jdW1lbnR8fGE6TztyZXR1cm4gZCE9 PUcmJjk9PT1kLm5vZGVUeXBlJiZkLmRvY3VtZW50RWxlbWVudD8oRz1kLEg9Ry5k b2N1bWVudEVsZW1lbnQsST0heShHKSwoYz1HLmRlZmF1bHRWaWV3KSYmYy50b3Ah PT1jJiYoYy5hZGRFdmVudExpc3RlbmVyP2MuYWRkRXZlbnRMaXN0ZW5lcigidW5s b2FkIix3YSwhMSk6Yy5hdHRhY2hFdmVudCYmYy5hdHRhY2hFdmVudCgib251bmxv YWQiLHdhKSksdi5hdHRyaWJ1dGVzPWUoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2xh c3NOYW1lPSJpIiwhYS5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpfSksdi5nZXRF bGVtZW50c0J5VGFnTmFtZT1lKGZ1bmN0aW9uKGEpe3JldHVybiBhLmFwcGVuZENo aWxkKEcuY3JlYXRlQ29tbWVudCgiIikpLCFhLmdldEVsZW1lbnRzQnlUYWdOYW1l KCIqIikubGVuZ3RofSksdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lPXFhLnRlc3Qo Ry5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSx2LmdldEJ5SWQ9ZShmdW5jdGlvbihh KXtyZXR1cm4gSC5hcHBlbmRDaGlsZChhKS5pZD1OLCFHLmdldEVsZW1lbnRzQnlO YW1lfHwhRy5nZXRFbGVtZW50c0J5TmFtZShOKS5sZW5ndGh9KSx2LmdldEJ5SWQ/ KHcuZmluZC5JRD1mdW5jdGlvbihhLGIpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2Yg Yi5nZXRFbGVtZW50QnlJZCYmSSl7dmFyIGM9Yi5nZXRFbGVtZW50QnlJZChhKTty ZXR1cm4gYz9bY106W119fSx3LmZpbHRlci5JRD1mdW5jdGlvbihhKXt2YXIgYj1h LnJlcGxhY2UodWEsdmEpO3JldHVybiBmdW5jdGlvbihhKXtyZXR1cm4gYS5nZXRB dHRyaWJ1dGUoImlkIik9PT1ifX0pOihkZWxldGUgdy5maW5kLklELHcuZmlsdGVy LklEPWZ1bmN0aW9uKGEpe3ZhciBiPWEucmVwbGFjZSh1YSx2YSk7cmV0dXJuIGZ1 bmN0aW9uKGEpe3ZhciBjPSJ1bmRlZmluZWQiIT10eXBlb2YgYS5nZXRBdHRyaWJ1 dGVOb2RlJiZhLmdldEF0dHJpYnV0ZU5vZGUoImlkIik7cmV0dXJuIGMmJmMudmFs dWU9PT1ifX0pLHcuZmluZC5UQUc9di5nZXRFbGVtZW50c0J5VGFnTmFtZT9mdW5j dGlvbihhLGIpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgYi5nZXRFbGVtZW50 c0J5VGFnTmFtZT9iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpOnYucXNhP2IucXVl cnlTZWxlY3RvckFsbChhKTp2b2lkIDB9OmZ1bmN0aW9uKGEsYil7dmFyIGMsZD1b XSxlPTAsZj1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpO2lmKCIqIj09PWEpe3do aWxlKGM9ZltlKytdKTE9PT1jLm5vZGVUeXBlJiZkLnB1c2goYyk7cmV0dXJuIGR9 cmV0dXJuIGZ9LHcuZmluZC5DTEFTUz12LmdldEVsZW1lbnRzQnlDbGFzc05hbWUm JmZ1bmN0aW9uKGEsYil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBiLmdldEVsZW1l bnRzQnlDbGFzc05hbWUmJkkpcmV0dXJuIGIuZ2V0RWxlbWVudHNCeUNsYXNzTmFt ZShhKX0sSz1bXSxKPVtdLCh2LnFzYT1xYS50ZXN0KEcucXVlcnlTZWxlY3RvckFs bCkpJiYoZShmdW5jdGlvbihhKXtILmFwcGVuZENoaWxkKGEpLmlubmVySFRNTD0i PGEgaWQ9JyIrTisiJz48L2E+PHNlbGVjdCBpZD0nIitOKyItXHJcXCcgbXNhbGxv d2NhcHR1cmU9Jyc+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVj dD4iLGEucXVlcnlTZWxlY3RvckFsbCgiW21zYWxsb3djYXB0dXJlXj0nJ10iKS5s ZW5ndGgmJkoucHVzaCgiWypeJF09IitjYSsiKig/OicnfFwiXCIpIiksYS5xdWVy eVNlbGVjdG9yQWxsKCJbc2VsZWN0ZWRdIikubGVuZ3RofHxKLnB1c2goIlxcWyIr Y2ErIiooPzp2YWx1ZXwiK2JhKyIpIiksYS5xdWVyeVNlbGVjdG9yQWxsKCJbaWR+ PSIrTisiLV0iKS5sZW5ndGh8fEoucHVzaCgifj0iKSxhLnF1ZXJ5U2VsZWN0b3JB bGwoIjpjaGVja2VkIikubGVuZ3RofHxKLnB1c2goIjpjaGVja2VkIiksYS5xdWVy eVNlbGVjdG9yQWxsKCJhIyIrTisiKyoiKS5sZW5ndGh8fEoucHVzaCgiLiMuK1sr fl0iKX0pLGUoZnVuY3Rpb24oYSl7dmFyIGI9Ry5jcmVhdGVFbGVtZW50KCJpbnB1 dCIpO2Iuc2V0QXR0cmlidXRlKCJ0eXBlIiwiaGlkZGVuIiksYS5hcHBlbmRDaGls ZChiKS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJEIiksYS5xdWVyeVNlbGVjdG9yQWxs KCJbbmFtZT1kXSIpLmxlbmd0aCYmSi5wdXNoKCJuYW1lIitjYSsiKlsqXiR8IX5d Pz0iKSxhLnF1ZXJ5U2VsZWN0b3JBbGwoIjplbmFibGVkIikubGVuZ3RofHxKLnB1 c2goIjplbmFibGVkIiwiOmRpc2FibGVkIiksYS5xdWVyeVNlbGVjdG9yQWxsKCIq LDp4IiksSi5wdXNoKCIsLio6Iil9KSksKHYubWF0Y2hlc1NlbGVjdG9yPXFhLnRl c3QoTD1ILm1hdGNoZXN8fEgud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxILm1vek1h dGNoZXNTZWxlY3Rvcnx8SC5vTWF0Y2hlc1NlbGVjdG9yfHxILm1zTWF0Y2hlc1Nl bGVjdG9yKSkmJmUoZnVuY3Rpb24oYSl7di5kaXNjb25uZWN0ZWRNYXRjaD1MLmNh bGwoYSwiZGl2IiksTC5jYWxsKGEsIltzIT0nJ106eCIpLEsucHVzaCgiIT0iLGZh KX0pLEo9Si5sZW5ndGgmJm5ldyBSZWdFeHAoSi5qb2luKCJ8IikpLEs9Sy5sZW5n dGgmJm5ldyBSZWdFeHAoSy5qb2luKCJ8IikpLGI9cWEudGVzdChILmNvbXBhcmVE b2N1bWVudFBvc2l0aW9uKSxNPWJ8fHFhLnRlc3QoSC5jb250YWlucyk/ZnVuY3Rp b24oYSxiKXt2YXIgYz05PT09YS5ub2RlVHlwZT9hLmRvY3VtZW50RWxlbWVudDph LGQ9YiYmYi5wYXJlbnROb2RlO3JldHVybiBhPT09ZHx8ISghZHx8MSE9PWQubm9k ZVR5cGV8fCEoYy5jb250YWlucz9jLmNvbnRhaW5zKGQpOmEuY29tcGFyZURvY3Vt ZW50UG9zaXRpb24mJjE2JmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZCkpKX06 ZnVuY3Rpb24oYSxiKXtpZihiKXdoaWxlKGI9Yi5wYXJlbnROb2RlKWlmKGI9PT1h KXJldHVybiEwO3JldHVybiExfSxVPWI/ZnVuY3Rpb24oYSxiKXtpZihhPT09Yily ZXR1cm4gRT0hMCwwO3ZhciBjPSFhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uLSFi LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uO3JldHVybiBjP2M6KGM9KGEub3duZXJE b2N1bWVudHx8YSk9PT0oYi5vd25lckRvY3VtZW50fHxiKT9hLmNvbXBhcmVEb2N1 bWVudFBvc2l0aW9uKGIpOjEsMSZjfHwhdi5zb3J0RGV0YWNoZWQmJmIuY29tcGFy ZURvY3VtZW50UG9zaXRpb24oYSk9PT1jP2E9PT1HfHxhLm93bmVyRG9jdW1lbnQ9 PT1PJiZNKE8sYSk/LTE6Yj09PUd8fGIub3duZXJEb2N1bWVudD09PU8mJk0oTyxi KT8xOkQ/YWEoRCxhKS1hYShELGIpOjA6NCZjPy0xOjEpfTpmdW5jdGlvbihhLGIp e2lmKGE9PT1iKXJldHVybiBFPSEwLDA7dmFyIGMsZD0wLGU9YS5wYXJlbnROb2Rl LGY9Yi5wYXJlbnROb2RlLGg9W2FdLGk9W2JdO2lmKCFlfHwhZilyZXR1cm4gYT09 PUc/LTE6Yj09PUc/MTplPy0xOmY/MTpEP2FhKEQsYSktYWEoRCxiKTowO2lmKGU9 PT1mKXJldHVybiBnKGEsYik7Yz1hO3doaWxlKGM9Yy5wYXJlbnROb2RlKWgudW5z aGlmdChjKTtjPWI7d2hpbGUoYz1jLnBhcmVudE5vZGUpaS51bnNoaWZ0KGMpO3do aWxlKGhbZF09PT1pW2RdKWQrKztyZXR1cm4gZD9nKGhbZF0saVtkXSk6aFtkXT09 PU8/LTE6aVtkXT09PU8/MTowfSxHKTpHfSxiLm1hdGNoZXM9ZnVuY3Rpb24oYSxj KXtyZXR1cm4gYihhLG51bGwsbnVsbCxjKX0sYi5tYXRjaGVzU2VsZWN0b3I9ZnVu Y3Rpb24oYSxjKXtpZigoYS5vd25lckRvY3VtZW50fHxhKSE9PUcmJkYoYSksYz1j LnJlcGxhY2Uoa2EsIj0nJDEnXSIpLHYubWF0Y2hlc1NlbGVjdG9yJiZJJiYhVFtj KyIgIl0mJighS3x8IUsudGVzdChjKSkmJighSnx8IUoudGVzdChjKSkpdHJ5e3Zh ciBkPUwuY2FsbChhLGMpO2lmKGR8fHYuZGlzY29ubmVjdGVkTWF0Y2h8fGEuZG9j dW1lbnQmJjExIT09YS5kb2N1bWVudC5ub2RlVHlwZSlyZXR1cm4gZH1jYXRjaChl KXt9cmV0dXJuIGIoYyxHLG51bGwsW2FdKS5sZW5ndGg+MH0sYi5jb250YWlucz1m dW5jdGlvbihhLGIpe3JldHVybihhLm93bmVyRG9jdW1lbnR8fGEpIT09RyYmRihh KSxNKGEsYil9LGIuYXR0cj1mdW5jdGlvbihhLGIpeyhhLm93bmVyRG9jdW1lbnR8 fGEpIT09RyYmRihhKTt2YXIgYz13LmF0dHJIYW5kbGVbYi50b0xvd2VyQ2FzZSgp XSxkPWMmJlcuY2FsbCh3LmF0dHJIYW5kbGUsYi50b0xvd2VyQ2FzZSgpKT9jKGEs YiwhSSk6dm9pZCAwO3JldHVybiB2b2lkIDAhPT1kP2Q6di5hdHRyaWJ1dGVzfHwh ST9hLmdldEF0dHJpYnV0ZShiKTooZD1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiZk LnNwZWNpZmllZD9kLnZhbHVlOm51bGx9LGIuZXJyb3I9ZnVuY3Rpb24oYSl7dGhy b3cgbmV3IEVycm9yKCJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNz aW9uOiAiK2EpfSxiLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oYSl7dmFyIGIsYz1bXSxk PTAsZT0wO2lmKEU9IXYuZGV0ZWN0RHVwbGljYXRlcyxEPSF2LnNvcnRTdGFibGUm JmEuc2xpY2UoMCksYS5zb3J0KFUpLEUpe3doaWxlKGI9YVtlKytdKWI9PT1hW2Vd JiYoZD1jLnB1c2goZSkpO3doaWxlKGQtLSlhLnNwbGljZShjW2RdLDEpfXJldHVy biBEPW51bGwsYX0seD1iLmdldFRleHQ9ZnVuY3Rpb24oYSl7dmFyIGIsYz0iIixk PTAsZT1hLm5vZGVUeXBlO2lmKGUpe2lmKDE9PT1lfHw5PT09ZXx8MTE9PT1lKXtp Zigic3RyaW5nIj09dHlwZW9mIGEudGV4dENvbnRlbnQpcmV0dXJuIGEudGV4dENv bnRlbnQ7Zm9yKGE9YS5maXJzdENoaWxkO2E7YT1hLm5leHRTaWJsaW5nKWMrPXgo YSl9ZWxzZSBpZigzPT09ZXx8ND09PWUpcmV0dXJuIGEubm9kZVZhbHVlfWVsc2Ug d2hpbGUoYj1hW2QrK10pYys9eChiKTtyZXR1cm4gY30sdz1iLnNlbGVjdG9ycz17 Y2FjaGVMZW5ndGg6NTAsY3JlYXRlUHNldWRvOmQsbWF0Y2g6bmEsYXR0ckhhbmRs ZTp7fSxmaW5kOnt9LHJlbGF0aXZlOnsiPiI6e2RpcjoicGFyZW50Tm9kZSIsZmly c3Q6ITB9LCIgIjp7ZGlyOiJwYXJlbnROb2RlIn0sIisiOntkaXI6InByZXZpb3Vz U2libGluZyIsZmlyc3Q6ITB9LCJ+Ijp7ZGlyOiJwcmV2aW91c1NpYmxpbmcifX0s cHJlRmlsdGVyOntBVFRSOmZ1bmN0aW9uKGEpe3JldHVybiBhWzFdPWFbMV0ucmVw bGFjZSh1YSx2YSksYVszXT0oYVszXXx8YVs0XXx8YVs1XXx8IiIpLnJlcGxhY2Uo dWEsdmEpLCJ+PSI9PT1hWzJdJiYoYVszXT0iICIrYVszXSsiICIpLGEuc2xpY2Uo MCw0KX0sQ0hJTEQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGFbMV09YVsxXS50b0xvd2Vy Q2FzZSgpLCJudGgiPT09YVsxXS5zbGljZSgwLDMpPyhhWzNdfHxiLmVycm9yKGFb MF0pLGFbNF09KyhhWzRdP2FbNV0rKGFbNl18fDEpOjIqKCJldmVuIj09PWFbM118 fCJvZGQiPT09YVszXSkpLGFbNV09KyhhWzddK2FbOF18fCJvZGQiPT09YVszXSkp OmFbM10mJmIuZXJyb3IoYVswXSksYX0sUFNFVURPOmZ1bmN0aW9uKGEpe3ZhciBi LGM9IWFbNl0mJmFbMl07cmV0dXJuIG5hLkNISUxELnRlc3QoYVswXSk/bnVsbDoo YVszXT9hWzJdPWFbNF18fGFbNV18fCIiOmMmJmxhLnRlc3QoYykmJihiPXooYywh MCkpJiYoYj1jLmluZGV4T2YoIikiLGMubGVuZ3RoLWIpLWMubGVuZ3RoKSYmKGFb MF09YVswXS5zbGljZSgwLGIpLGFbMl09Yy5zbGljZSgwLGIpKSxhLnNsaWNlKDAs MykpfX0sZmlsdGVyOntUQUc6ZnVuY3Rpb24oYSl7dmFyIGI9YS5yZXBsYWNlKHVh LHZhKS50b0xvd2VyQ2FzZSgpO3JldHVybiIqIj09PWE/ZnVuY3Rpb24oKXtyZXR1 cm4hMH06ZnVuY3Rpb24oYSl7cmV0dXJuIGEubm9kZU5hbWUmJmEubm9kZU5hbWUu dG9Mb3dlckNhc2UoKT09PWJ9fSxDTEFTUzpmdW5jdGlvbihhKXt2YXIgYj1SW2Er IiAiXTtyZXR1cm4gYnx8KGI9bmV3IFJlZ0V4cCgiKF58IitjYSsiKSIrYSsiKCIr Y2ErInwkKSIpKSYmUihhLGZ1bmN0aW9uKGEpe3JldHVybiBiLnRlc3QoInN0cmlu ZyI9PXR5cGVvZiBhLmNsYXNzTmFtZSYmYS5jbGFzc05hbWV8fCJ1bmRlZmluZWQi IT10eXBlb2YgYS5nZXRBdHRyaWJ1dGUmJmEuZ2V0QXR0cmlidXRlKCJjbGFzcyIp fHwiIil9KX0sQVRUUjpmdW5jdGlvbihhLGMsZCl7cmV0dXJuIGZ1bmN0aW9uKGUp e3ZhciBmPWIuYXR0cihlLGEpO3JldHVybiBudWxsPT1mPyIhPSI9PT1jOiFjfHwo Zis9IiIsIj0iPT09Yz9mPT09ZDoiIT0iPT09Yz9mIT09ZDoiXj0iPT09Yz9kJiYw PT09Zi5pbmRleE9mKGQpOiIqPSI9PT1jP2QmJmYuaW5kZXhPZihkKT4tMToiJD0i PT09Yz9kJiZmLnNsaWNlKC1kLmxlbmd0aCk9PT1kOiJ+PSI9PT1jPygiICIrZi5y ZXBsYWNlKGdhLCIgIikrIiAiKS5pbmRleE9mKGQpPi0xOiJ8PSI9PT1jJiYoZj09 PWR8fGYuc2xpY2UoMCxkLmxlbmd0aCsxKT09PWQrIi0iKSl9fSxDSElMRDpmdW5j dGlvbihhLGIsYyxkLGUpe3ZhciBmPSJudGgiIT09YS5zbGljZSgwLDMpLGc9Imxh c3QiIT09YS5zbGljZSgtNCksaD0ib2YtdHlwZSI9PT1iO3JldHVybiAxPT09ZCYm MD09PWU/ZnVuY3Rpb24oYSl7cmV0dXJuISFhLnBhcmVudE5vZGV9OmZ1bmN0aW9u KGIsYyxpKXt2YXIgaixrLGwsbSxuLG8scD1mIT09Zz8ibmV4dFNpYmxpbmciOiJw cmV2aW91c1NpYmxpbmciLHE9Yi5wYXJlbnROb2RlLHI9aCYmYi5ub2RlTmFtZS50 b0xvd2VyQ2FzZSgpLHM9IWkmJiFoLHQ9ITE7aWYocSl7aWYoZil7d2hpbGUocCl7 bT1iO3doaWxlKG09bVtwXSlpZihoP20ubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09 PXI6MT09PW0ubm9kZVR5cGUpcmV0dXJuITE7bz1wPSJvbmx5Ij09PWEmJiFvJiYi bmV4dFNpYmxpbmcifXJldHVybiEwfWlmKG89W2c/cS5maXJzdENoaWxkOnEubGFz dENoaWxkXSxnJiZzKXttPXEsbD1tW05dfHwobVtOXT17fSksaz1sW20udW5pcXVl SURdfHwobFttLnVuaXF1ZUlEXT17fSksaj1rW2FdfHxbXSxuPWpbMF09PT1QJiZq WzFdLHQ9biYmalsyXSxtPW4mJnEuY2hpbGROb2Rlc1tuXTt3aGlsZShtPSsrbiYm bSYmbVtwXXx8KHQ9bj0wKXx8by5wb3AoKSlpZigxPT09bS5ub2RlVHlwZSYmKyt0 JiZtPT09Yil7a1thXT1bUCxuLHRdO2JyZWFrfX1lbHNlIGlmKHMmJihtPWIsbD1t W05dfHwobVtOXT17fSksaz1sW20udW5pcXVlSURdfHwobFttLnVuaXF1ZUlEXT17 fSksaj1rW2FdfHxbXSxuPWpbMF09PT1QJiZqWzFdLHQ9biksdD09PSExKXdoaWxl KG09KytuJiZtJiZtW3BdfHwodD1uPTApfHxvLnBvcCgpKWlmKChoP20ubm9kZU5h bWUudG9Mb3dlckNhc2UoKT09PXI6MT09PW0ubm9kZVR5cGUpJiYrK3QmJihzJiYo bD1tW05dfHwobVtOXT17fSksaz1sW20udW5pcXVlSURdfHwobFttLnVuaXF1ZUlE XT17fSksa1thXT1bUCx0XSksbT09PWIpKWJyZWFrO3JldHVybiB0LT1lLHQ9PT1k fHx0JWQ9PT0wJiZ0L2Q+PTB9fX0sUFNFVURPOmZ1bmN0aW9uKGEsYyl7dmFyIGUs Zj13LnBzZXVkb3NbYV18fHcuc2V0RmlsdGVyc1thLnRvTG93ZXJDYXNlKCldfHxi LmVycm9yKCJ1bnN1cHBvcnRlZCBwc2V1ZG86ICIrYSk7cmV0dXJuIGZbTl0/Zihj KTpmLmxlbmd0aD4xPyhlPVthLGEsIiIsY10sdy5zZXRGaWx0ZXJzLmhhc093blBy b3BlcnR5KGEudG9Mb3dlckNhc2UoKSk/ZChmdW5jdGlvbihhLGIpe3ZhciBkLGU9 ZihhLGMpLGc9ZS5sZW5ndGg7d2hpbGUoZy0tKWQ9YWEoYSxlW2ddKSxhW2RdPSEo YltkXT1lW2ddKX0pOmZ1bmN0aW9uKGEpe3JldHVybiBmKGEsMCxlKX0pOmZ9fSxw c2V1ZG9zOntub3Q6ZChmdW5jdGlvbihhKXt2YXIgYj1bXSxjPVtdLGU9QShhLnJl cGxhY2UoaGEsIiQxIikpO3JldHVybiBlW05dP2QoZnVuY3Rpb24oYSxiLGMsZCl7 dmFyIGYsZz1lKGEsbnVsbCxkLFtdKSxoPWEubGVuZ3RoO3doaWxlKGgtLSkoZj1n W2hdKSYmKGFbaF09IShiW2hdPWYpKX0pOmZ1bmN0aW9uKGEsZCxmKXtyZXR1cm4g YlswXT1hLGUoYixudWxsLGYsYyksYlswXT1udWxsLCFjLnBvcCgpfX0pLGhhczpk KGZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gYihhLGMpLmxl bmd0aD4wfX0pLGNvbnRhaW5zOmQoZnVuY3Rpb24oYSl7cmV0dXJuIGE9YS5yZXBs YWNlKHVhLHZhKSxmdW5jdGlvbihiKXtyZXR1cm4oYi50ZXh0Q29udGVudHx8Yi5p bm5lclRleHR8fHgoYikpLmluZGV4T2YoYSk+LTF9fSksbGFuZzpkKGZ1bmN0aW9u KGEpe3JldHVybiBtYS50ZXN0KGF8fCIiKXx8Yi5lcnJvcigidW5zdXBwb3J0ZWQg bGFuZzogIithKSxhPWEucmVwbGFjZSh1YSx2YSkudG9Mb3dlckNhc2UoKSxmdW5j dGlvbihiKXt2YXIgYztkbyBpZihjPUk/Yi5sYW5nOmIuZ2V0QXR0cmlidXRlKCJ4 bWw6bGFuZyIpfHxiLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybiBjPWMudG9M b3dlckNhc2UoKSxjPT09YXx8MD09PWMuaW5kZXhPZihhKyItIik7d2hpbGUoKGI9 Yi5wYXJlbnROb2RlKSYmMT09PWIubm9kZVR5cGUpO3JldHVybiExfX0pLHRhcmdl dDpmdW5jdGlvbihiKXt2YXIgYz1hLmxvY2F0aW9uJiZhLmxvY2F0aW9uLmhhc2g7 cmV0dXJuIGMmJmMuc2xpY2UoMSk9PT1iLmlkfSxyb290OmZ1bmN0aW9uKGEpe3Jl dHVybiBhPT09SH0sZm9jdXM6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1HLmFjdGl2 ZUVsZW1lbnQmJighRy5oYXNGb2N1c3x8Ry5oYXNGb2N1cygpKSYmISEoYS50eXBl fHxhLmhyZWZ8fH5hLnRhYkluZGV4KX0sZW5hYmxlZDpmdW5jdGlvbihhKXtyZXR1 cm4gYS5kaXNhYmxlZD09PSExfSxkaXNhYmxlZDpmdW5jdGlvbihhKXtyZXR1cm4g YS5kaXNhYmxlZD09PSEwfSxjaGVja2VkOmZ1bmN0aW9uKGEpe3ZhciBiPWEubm9k ZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09YiYmISFhLmNoZWNr ZWR8fCJvcHRpb24iPT09YiYmISFhLnNlbGVjdGVkfSxzZWxlY3RlZDpmdW5jdGlv bihhKXtyZXR1cm4gYS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUuc2VsZWN0ZWRJ bmRleCxhLnNlbGVjdGVkPT09ITB9LGVtcHR5OmZ1bmN0aW9uKGEpe2ZvcihhPWEu Zmlyc3RDaGlsZDthO2E9YS5uZXh0U2libGluZylpZihhLm5vZGVUeXBlPDYpcmV0 dXJuITE7cmV0dXJuITB9LHBhcmVudDpmdW5jdGlvbihhKXtyZXR1cm4hdy5wc2V1 ZG9zLmVtcHR5KGEpfSxoZWFkZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIHBhLnRlc3Qo YS5ub2RlTmFtZSl9LGlucHV0OmZ1bmN0aW9uKGEpe3JldHVybiBvYS50ZXN0KGEu bm9kZU5hbWUpfSxidXR0b246ZnVuY3Rpb24oYSl7dmFyIGI9YS5ub2RlTmFtZS50 b0xvd2VyQ2FzZSgpO3JldHVybiJpbnB1dCI9PT1iJiYiYnV0dG9uIj09PWEudHlw ZXx8ImJ1dHRvbiI9PT1ifSx0ZXh0OmZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiJp bnB1dCI9PT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkmJiJ0ZXh0Ij09PWEudHlw ZSYmKG51bGw9PShiPWEuZ2V0QXR0cmlidXRlKCJ0eXBlIikpfHwidGV4dCI9PT1i LnRvTG93ZXJDYXNlKCkpfSxmaXJzdDpqKGZ1bmN0aW9uKCl7cmV0dXJuWzBdfSks bGFzdDpqKGZ1bmN0aW9uKGEsYil7CnJldHVybltiLTFdfSksZXE6aihmdW5jdGlv bihhLGIsYyl7cmV0dXJuW2M8MD9jK2I6Y119KSxldmVuOmooZnVuY3Rpb24oYSxi KXtmb3IodmFyIGM9MDtjPGI7Yys9MilhLnB1c2goYyk7cmV0dXJuIGF9KSxvZGQ6 aihmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0xO2M8YjtjKz0yKWEucHVzaChjKTty ZXR1cm4gYX0pLGx0OmooZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD1jPDA/Yyti OmM7LS1kPj0wOylhLnB1c2goZCk7cmV0dXJuIGF9KSxndDpqKGZ1bmN0aW9uKGEs YixjKXtmb3IodmFyIGQ9YzwwP2MrYjpjOysrZDxiOylhLnB1c2goZCk7cmV0dXJu IGF9KX19LHcucHNldWRvcy5udGg9dy5wc2V1ZG9zLmVxO2Zvcih1IGlue3JhZGlv OiEwLGNoZWNrYm94OiEwLGZpbGU6ITAscGFzc3dvcmQ6ITAsaW1hZ2U6ITB9KXcu cHNldWRvc1t1XT1oKHUpO2Zvcih1IGlue3N1Ym1pdDohMCxyZXNldDohMH0pdy5w c2V1ZG9zW3VdPWkodSk7cmV0dXJuIGwucHJvdG90eXBlPXcuZmlsdGVycz13LnBz ZXVkb3Msdy5zZXRGaWx0ZXJzPW5ldyBsLHo9Yi50b2tlbml6ZT1mdW5jdGlvbihh LGMpe3ZhciBkLGUsZixnLGgsaSxqLGs9U1thKyIgIl07aWYoaylyZXR1cm4gYz8w Omsuc2xpY2UoMCk7aD1hLGk9W10saj13LnByZUZpbHRlcjt3aGlsZShoKXtkJiYh KGU9aWEuZXhlYyhoKSl8fChlJiYoaD1oLnNsaWNlKGVbMF0ubGVuZ3RoKXx8aCks aS5wdXNoKGY9W10pKSxkPSExLChlPWphLmV4ZWMoaCkpJiYoZD1lLnNoaWZ0KCks Zi5wdXNoKHt2YWx1ZTpkLHR5cGU6ZVswXS5yZXBsYWNlKGhhLCIgIil9KSxoPWgu c2xpY2UoZC5sZW5ndGgpKTtmb3IoZyBpbiB3LmZpbHRlcikhKGU9bmFbZ10uZXhl YyhoKSl8fGpbZ10mJiEoZT1qW2ddKGUpKXx8KGQ9ZS5zaGlmdCgpLGYucHVzaCh7 dmFsdWU6ZCx0eXBlOmcsbWF0Y2hlczplfSksaD1oLnNsaWNlKGQubGVuZ3RoKSk7 aWYoIWQpYnJlYWt9cmV0dXJuIGM/aC5sZW5ndGg6aD9iLmVycm9yKGEpOlMoYSxp KS5zbGljZSgwKX0sQT1iLmNvbXBpbGU9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkPVtd LGU9W10sZj1UW2ErIiAiXTtpZighZil7Ynx8KGI9eihhKSksYz1iLmxlbmd0aDt3 aGlsZShjLS0pZj1zKGJbY10pLGZbTl0/ZC5wdXNoKGYpOmUucHVzaChmKTtmPVQo YSx0KGUsZCkpLGYuc2VsZWN0b3I9YX1yZXR1cm4gZn0sQj1iLnNlbGVjdD1mdW5j dGlvbihhLGIsYyxkKXt2YXIgZSxmLGcsaCxpLGo9ImZ1bmN0aW9uIj09dHlwZW9m IGEmJmEsbD0hZCYmeihhPWouc2VsZWN0b3J8fGEpO2lmKGM9Y3x8W10sMT09PWwu bGVuZ3RoKXtpZihmPWxbMF09bFswXS5zbGljZSgwKSxmLmxlbmd0aD4yJiYiSUQi PT09KGc9ZlswXSkudHlwZSYmdi5nZXRCeUlkJiY5PT09Yi5ub2RlVHlwZSYmSSYm dy5yZWxhdGl2ZVtmWzFdLnR5cGVdKXtpZihiPSh3LmZpbmQuSUQoZy5tYXRjaGVz WzBdLnJlcGxhY2UodWEsdmEpLGIpfHxbXSlbMF0sIWIpcmV0dXJuIGM7aiYmKGI9 Yi5wYXJlbnROb2RlKSxhPWEuc2xpY2UoZi5zaGlmdCgpLnZhbHVlLmxlbmd0aCl9 ZT1uYS5uZWVkc0NvbnRleHQudGVzdChhKT8wOmYubGVuZ3RoO3doaWxlKGUtLSl7 aWYoZz1mW2VdLHcucmVsYXRpdmVbaD1nLnR5cGVdKWJyZWFrO2lmKChpPXcuZmlu ZFtoXSkmJihkPWkoZy5tYXRjaGVzWzBdLnJlcGxhY2UodWEsdmEpLHNhLnRlc3Qo ZlswXS50eXBlKSYmayhiLnBhcmVudE5vZGUpfHxiKSkpe2lmKGYuc3BsaWNlKGUs MSksYT1kLmxlbmd0aCYmbShmKSwhYSlyZXR1cm4gJC5hcHBseShjLGQpLGM7YnJl YWt9fX1yZXR1cm4oanx8QShhLGwpKShkLGIsIUksYywhYnx8c2EudGVzdChhKSYm ayhiLnBhcmVudE5vZGUpfHxiKSxjfSx2LnNvcnRTdGFibGU9Ti5zcGxpdCgiIiku c29ydChVKS5qb2luKCIiKT09PU4sdi5kZXRlY3REdXBsaWNhdGVzPSEhRSxGKCks di5zb3J0RGV0YWNoZWQ9ZShmdW5jdGlvbihhKXtyZXR1cm4gMSZhLmNvbXBhcmVE b2N1bWVudFBvc2l0aW9uKEcuY3JlYXRlRWxlbWVudCgiZGl2IikpfSksZShmdW5j dGlvbihhKXtyZXR1cm4gYS5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iLCIj Ij09PWEuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKX0pfHxmKCJ0eXBl fGhyZWZ8aGVpZ2h0fHdpZHRoIixmdW5jdGlvbihhLGIsYyl7aWYoIWMpcmV0dXJu IGEuZ2V0QXR0cmlidXRlKGIsInR5cGUiPT09Yi50b0xvd2VyQ2FzZSgpPzE6Mil9 KSx2LmF0dHJpYnV0ZXMmJmUoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaW5uZXJIVE1M PSI8aW5wdXQvPiIsYS5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSgidmFsdWUiLCIi KSwiIj09PWEuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoInZhbHVlIil9KXx8Zigi dmFsdWUiLGZ1bmN0aW9uKGEsYixjKXtpZighYyYmImlucHV0Ij09PWEubm9kZU5h bWUudG9Mb3dlckNhc2UoKSlyZXR1cm4gYS5kZWZhdWx0VmFsdWV9KSxlKGZ1bmN0 aW9uKGEpe3JldHVybiBudWxsPT1hLmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKX0p fHxmKGJhLGZ1bmN0aW9uKGEsYixjKXt2YXIgZDtpZighYylyZXR1cm4gYVtiXT09 PSEwP2IudG9Mb3dlckNhc2UoKTooZD1hLmdldEF0dHJpYnV0ZU5vZGUoYikpJiZk LnNwZWNpZmllZD9kLnZhbHVlOm51bGx9KSxifShhKTtmYS5maW5kPWthLGZhLmV4 cHI9a2Euc2VsZWN0b3JzLGZhLmV4cHJbIjoiXT1mYS5leHByLnBzZXVkb3MsZmEu dW5pcXVlU29ydD1mYS51bmlxdWU9a2EudW5pcXVlU29ydCxmYS50ZXh0PWthLmdl dFRleHQsZmEuaXNYTUxEb2M9a2EuaXNYTUwsZmEuY29udGFpbnM9a2EuY29udGFp bnM7dmFyIGxhPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bXSxlPXZvaWQgMCE9PWM7 d2hpbGUoKGE9YVtiXSkmJjkhPT1hLm5vZGVUeXBlKWlmKDE9PT1hLm5vZGVUeXBl KXtpZihlJiZmYShhKS5pcyhjKSlicmVhaztkLnB1c2goYSl9cmV0dXJuIGR9LG1h PWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdO2E7YT1hLm5leHRTaWJsaW5nKTE9 PT1hLm5vZGVUeXBlJiZhIT09YiYmYy5wdXNoKGEpO3JldHVybiBjfSxuYT1mYS5l eHByLm1hdGNoLm5lZWRzQ29udGV4dCxvYT0vXjwoW1x3LV0rKVxzKlwvPz4oPzo8 XC9cMT58KSQvLHBhPS9eLlteOiNcW1wuLF0qJC87ZmEuZmlsdGVyPWZ1bmN0aW9u KGEsYixjKXt2YXIgZD1iWzBdO3JldHVybiBjJiYoYT0iOm5vdCgiK2ErIikiKSwx PT09Yi5sZW5ndGgmJjE9PT1kLm5vZGVUeXBlP2ZhLmZpbmQubWF0Y2hlc1NlbGVj dG9yKGQsYSk/W2RdOltdOmZhLmZpbmQubWF0Y2hlcyhhLGZhLmdyZXAoYixmdW5j dGlvbihhKXtyZXR1cm4gMT09PWEubm9kZVR5cGV9KSl9LGZhLmZuLmV4dGVuZCh7 ZmluZDpmdW5jdGlvbihhKXt2YXIgYixjPXRoaXMubGVuZ3RoLGQ9W10sZT10aGlz O2lmKCJzdHJpbmciIT10eXBlb2YgYSlyZXR1cm4gdGhpcy5wdXNoU3RhY2soZmEo YSkuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKGI9MDtiPGM7YisrKWlmKGZhLmNvbnRh aW5zKGVbYl0sdGhpcykpcmV0dXJuITB9KSk7Zm9yKGI9MDtiPGM7YisrKWZhLmZp bmQoYSxlW2JdLGQpO3JldHVybiBkPXRoaXMucHVzaFN0YWNrKGM+MT9mYS51bmlx dWUoZCk6ZCksZC5zZWxlY3Rvcj10aGlzLnNlbGVjdG9yP3RoaXMuc2VsZWN0b3Ir IiAiK2E6YSxkfSxmaWx0ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0 YWNrKGQodGhpcyxhfHxbXSwhMSkpfSxub3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIHRo aXMucHVzaFN0YWNrKGQodGhpcyxhfHxbXSwhMCkpfSxpczpmdW5jdGlvbihhKXty ZXR1cm4hIWQodGhpcywic3RyaW5nIj09dHlwZW9mIGEmJm5hLnRlc3QoYSk/ZmEo YSk6YXx8W10sITEpLmxlbmd0aH19KTt2YXIgcWEscmE9L14oPzpccyooPFtcd1xX XSs+KVtePl0qfCMoW1x3LV0qKSkkLyxzYT1mYS5mbi5pbml0PWZ1bmN0aW9uKGEs YixjKXt2YXIgZCxlO2lmKCFhKXJldHVybiB0aGlzO2lmKGM9Y3x8cWEsInN0cmlu ZyI9PXR5cGVvZiBhKXtpZihkPSI8Ij09PWFbMF0mJiI+Ij09PWFbYS5sZW5ndGgt MV0mJmEubGVuZ3RoPj0zP1tudWxsLGEsbnVsbF06cmEuZXhlYyhhKSwhZHx8IWRb MV0mJmIpcmV0dXJuIWJ8fGIuanF1ZXJ5PyhifHxjKS5maW5kKGEpOnRoaXMuY29u c3RydWN0b3IoYikuZmluZChhKTtpZihkWzFdKXtpZihiPWIgaW5zdGFuY2VvZiBm YT9iWzBdOmIsZmEubWVyZ2UodGhpcyxmYS5wYXJzZUhUTUwoZFsxXSxiJiZiLm5v ZGVUeXBlP2Iub3duZXJEb2N1bWVudHx8YjpYLCEwKSksb2EudGVzdChkWzFdKSYm ZmEuaXNQbGFpbk9iamVjdChiKSlmb3IoZCBpbiBiKWZhLmlzRnVuY3Rpb24odGhp c1tkXSk/dGhpc1tkXShiW2RdKTp0aGlzLmF0dHIoZCxiW2RdKTtyZXR1cm4gdGhp c31yZXR1cm4gZT1YLmdldEVsZW1lbnRCeUlkKGRbMl0pLGUmJmUucGFyZW50Tm9k ZSYmKHRoaXMubGVuZ3RoPTEsdGhpc1swXT1lKSx0aGlzLmNvbnRleHQ9WCx0aGlz LnNlbGVjdG9yPWEsdGhpc31yZXR1cm4gYS5ub2RlVHlwZT8odGhpcy5jb250ZXh0 PXRoaXNbMF09YSx0aGlzLmxlbmd0aD0xLHRoaXMpOmZhLmlzRnVuY3Rpb24oYSk/ dm9pZCAwIT09Yy5yZWFkeT9jLnJlYWR5KGEpOmEoZmEpOih2b2lkIDAhPT1hLnNl bGVjdG9yJiYodGhpcy5zZWxlY3Rvcj1hLnNlbGVjdG9yLHRoaXMuY29udGV4dD1h LmNvbnRleHQpLGZhLm1ha2VBcnJheShhLHRoaXMpKX07c2EucHJvdG90eXBlPWZh LmZuLHFhPWZhKFgpO3ZhciB0YT0vXig/OnBhcmVudHN8cHJldig/OlVudGlsfEFs bCkpLyx1YT17Y2hpbGRyZW46ITAsY29udGVudHM6ITAsbmV4dDohMCxwcmV2OiEw fTtmYS5mbi5leHRlbmQoe2hhczpmdW5jdGlvbihhKXt2YXIgYj1mYShhLHRoaXMp LGM9Yi5sZW5ndGg7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKHZh ciBhPTA7YTxjO2ErKylpZihmYS5jb250YWlucyh0aGlzLGJbYV0pKXJldHVybiEw fSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGMsZD0wLGU9dGhpcy5s ZW5ndGgsZj1bXSxnPW5hLnRlc3QoYSl8fCJzdHJpbmciIT10eXBlb2YgYT9mYShh LGJ8fHRoaXMuY29udGV4dCk6MDtkPGU7ZCsrKWZvcihjPXRoaXNbZF07YyYmYyE9 PWI7Yz1jLnBhcmVudE5vZGUpaWYoYy5ub2RlVHlwZTwxMSYmKGc/Zy5pbmRleChj KT4tMToxPT09Yy5ub2RlVHlwZSYmZmEuZmluZC5tYXRjaGVzU2VsZWN0b3IoYyxh KSkpe2YucHVzaChjKTticmVha31yZXR1cm4gdGhpcy5wdXNoU3RhY2soZi5sZW5n dGg+MT9mYS51bmlxdWVTb3J0KGYpOmYpfSxpbmRleDpmdW5jdGlvbihhKXtyZXR1 cm4gYT8ic3RyaW5nIj09dHlwZW9mIGE/Xy5jYWxsKGZhKGEpLHRoaXNbMF0pOl8u Y2FsbCh0aGlzLGEuanF1ZXJ5P2FbMF06YSk6dGhpc1swXSYmdGhpc1swXS5wYXJl bnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVu Y3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZmEudW5pcXVlU29ydChm YS5tZXJnZSh0aGlzLmdldCgpLGZhKGEsYikpKSl9LGFkZEJhY2s6ZnVuY3Rpb24o YSl7cmV0dXJuIHRoaXMuYWRkKG51bGw9PWE/dGhpcy5wcmV2T2JqZWN0OnRoaXMu cHJldk9iamVjdC5maWx0ZXIoYSkpfX0pLGZhLmVhY2goe3BhcmVudDpmdW5jdGlv bihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGImJjExIT09Yi5ub2RlVHlw ZT9iOm51bGx9LHBhcmVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIGxhKGEsInBhcmVu dE5vZGUiKX0scGFyZW50c1VudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gbGEo YSwicGFyZW50Tm9kZSIsYyl9LG5leHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGUoYSwi bmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihhKXtyZXR1cm4gZShhLCJwcmV2 aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihhKXtyZXR1cm4gbGEoYSwi bmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihhKXtyZXR1cm4gbGEoYSwi cHJldmlvdXNTaWJsaW5nIil9LG5leHRVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0 dXJuIGxhKGEsIm5leHRTaWJsaW5nIixjKX0scHJldlVudGlsOmZ1bmN0aW9uKGEs YixjKXtyZXR1cm4gbGEoYSwicHJldmlvdXNTaWJsaW5nIixjKX0sc2libGluZ3M6 ZnVuY3Rpb24oYSl7cmV0dXJuIG1hKChhLnBhcmVudE5vZGV8fHt9KS5maXJzdENo aWxkLGEpfSxjaGlsZHJlbjpmdW5jdGlvbihhKXtyZXR1cm4gbWEoYS5maXJzdENo aWxkKX0sY29udGVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuY29udGVudERvY3Vt ZW50fHxmYS5tZXJnZShbXSxhLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oYSxiKXtm YS5mblthXT1mdW5jdGlvbihjLGQpe3ZhciBlPWZhLm1hcCh0aGlzLGIsYyk7cmV0 dXJuIlVudGlsIiE9PWEuc2xpY2UoLTUpJiYoZD1jKSxkJiYic3RyaW5nIj09dHlw ZW9mIGQmJihlPWZhLmZpbHRlcihkLGUpKSx0aGlzLmxlbmd0aD4xJiYodWFbYV18 fGZhLnVuaXF1ZVNvcnQoZSksdGEudGVzdChhKSYmZS5yZXZlcnNlKCkpLHRoaXMu cHVzaFN0YWNrKGUpfX0pO3ZhciB2YT0vXFMrL2c7ZmEuQ2FsbGJhY2tzPWZ1bmN0 aW9uKGEpe2E9InN0cmluZyI9PXR5cGVvZiBhP2YoYSk6ZmEuZXh0ZW5kKHt9LGEp O3ZhciBiLGMsZCxlLGc9W10saD1bXSxpPS0xLGo9ZnVuY3Rpb24oKXtmb3IoZT1h Lm9uY2UsZD1iPSEwO2gubGVuZ3RoO2k9LTEpe2M9aC5zaGlmdCgpO3doaWxlKCsr aTxnLmxlbmd0aClnW2ldLmFwcGx5KGNbMF0sY1sxXSk9PT0hMSYmYS5zdG9wT25G YWxzZSYmKGk9Zy5sZW5ndGgsYz0hMSl9YS5tZW1vcnl8fChjPSExKSxiPSExLGUm JihnPWM/W106IiIpfSxrPXthZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gZyYmKGMmJiFi JiYoaT1nLmxlbmd0aC0xLGgucHVzaChjKSksZnVuY3Rpb24gZChiKXtmYS5lYWNo KGIsZnVuY3Rpb24oYixjKXtmYS5pc0Z1bmN0aW9uKGMpP2EudW5pcXVlJiZrLmhh cyhjKXx8Zy5wdXNoKGMpOmMmJmMubGVuZ3RoJiYic3RyaW5nIiE9PWZhLnR5cGUo YykmJmQoYyl9KX0oYXJndW1lbnRzKSxjJiYhYiYmaigpKSx0aGlzfSxyZW1vdmU6 ZnVuY3Rpb24oKXtyZXR1cm4gZmEuZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oYSxi KXt2YXIgYzt3aGlsZSgoYz1mYS5pbkFycmF5KGIsZyxjKSk+LTEpZy5zcGxpY2Uo YywxKSxjPD1pJiZpLS19KSx0aGlzfSxoYXM6ZnVuY3Rpb24oYSl7cmV0dXJuIGE/ ZmEuaW5BcnJheShhLGcpPi0xOmcubGVuZ3RoPjB9LGVtcHR5OmZ1bmN0aW9uKCl7 cmV0dXJuIGcmJihnPVtdKSx0aGlzfSxkaXNhYmxlOmZ1bmN0aW9uKCl7cmV0dXJu IGU9aD1bXSxnPWM9IiIsdGhpc30sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4h Z30sbG9jazpmdW5jdGlvbigpe3JldHVybiBlPWg9W10sY3x8KGc9Yz0iIiksdGhp c30sbG9ja2VkOmZ1bmN0aW9uKCl7cmV0dXJuISFlfSxmaXJlV2l0aDpmdW5jdGlv bihhLGMpe3JldHVybiBlfHwoYz1jfHxbXSxjPVthLGMuc2xpY2U/Yy5zbGljZSgp OmNdLGgucHVzaChjKSxifHxqKCkpLHRoaXN9LGZpcmU6ZnVuY3Rpb24oKXtyZXR1 cm4gay5maXJlV2l0aCh0aGlzLGFyZ3VtZW50cyksdGhpc30sZmlyZWQ6ZnVuY3Rp b24oKXtyZXR1cm4hIWR9fTtyZXR1cm4ga30sZmEuZXh0ZW5kKHtEZWZlcnJlZDpm dW5jdGlvbihhKXt2YXIgYj1bWyJyZXNvbHZlIiwiZG9uZSIsZmEuQ2FsbGJhY2tz KCJvbmNlIG1lbW9yeSIpLCJyZXNvbHZlZCJdLFsicmVqZWN0IiwiZmFpbCIsZmEu Q2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZWplY3RlZCJdLFsibm90aWZ5Iiwi cHJvZ3Jlc3MiLGZhLkNhbGxiYWNrcygibWVtb3J5IildXSxjPSJwZW5kaW5nIixk PXtzdGF0ZTpmdW5jdGlvbigpe3JldHVybiBjfSxhbHdheXM6ZnVuY3Rpb24oKXty ZXR1cm4gZS5kb25lKGFyZ3VtZW50cykuZmFpbChhcmd1bWVudHMpLHRoaXN9LHRo ZW46ZnVuY3Rpb24oKXt2YXIgYT1hcmd1bWVudHM7cmV0dXJuIGZhLkRlZmVycmVk KGZ1bmN0aW9uKGMpe2ZhLmVhY2goYixmdW5jdGlvbihiLGYpe3ZhciBnPWZhLmlz RnVuY3Rpb24oYVtiXSkmJmFbYl07ZVtmWzFdXShmdW5jdGlvbigpe3ZhciBhPWcm JmcuYXBwbHkodGhpcyxhcmd1bWVudHMpO2EmJmZhLmlzRnVuY3Rpb24oYS5wcm9t aXNlKT9hLnByb21pc2UoKS5wcm9ncmVzcyhjLm5vdGlmeSkuZG9uZShjLnJlc29s dmUpLmZhaWwoYy5yZWplY3QpOmNbZlswXSsiV2l0aCJdKHRoaXM9PT1kP2MucHJv bWlzZSgpOnRoaXMsZz9bYV06YXJndW1lbnRzKX0pfSksYT1udWxsfSkucHJvbWlz ZSgpfSxwcm9taXNlOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hP2ZhLmV4dGVu ZChhLGQpOmR9fSxlPXt9O3JldHVybiBkLnBpcGU9ZC50aGVuLGZhLmVhY2goYixm dW5jdGlvbihhLGYpe3ZhciBnPWZbMl0saD1mWzNdO2RbZlsxXV09Zy5hZGQsaCYm Zy5hZGQoZnVuY3Rpb24oKXtjPWh9LGJbMV5hXVsyXS5kaXNhYmxlLGJbMl1bMl0u bG9jayksZVtmWzBdXT1mdW5jdGlvbigpe3JldHVybiBlW2ZbMF0rIldpdGgiXSh0 aGlzPT09ZT9kOnRoaXMsYXJndW1lbnRzKSx0aGlzfSxlW2ZbMF0rIldpdGgiXT1n LmZpcmVXaXRofSksZC5wcm9taXNlKGUpLGEmJmEuY2FsbChlLGUpLGV9LHdoZW46 ZnVuY3Rpb24oYSl7dmFyIGI9MCxjPVkuY2FsbChhcmd1bWVudHMpLGQ9Yy5sZW5n dGgsZT0xIT09ZHx8YSYmZmEuaXNGdW5jdGlvbihhLnByb21pc2UpP2Q6MCxmPTE9 PT1lP2E6ZmEuRGVmZXJyZWQoKSxnPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZnVu Y3Rpb24oZCl7YlthXT10aGlzLGNbYV09YXJndW1lbnRzLmxlbmd0aD4xP1kuY2Fs bChhcmd1bWVudHMpOmQsYz09PWg/Zi5ub3RpZnlXaXRoKGIsYyk6LS1lfHxmLnJl c29sdmVXaXRoKGIsYyl9fSxoLGksajtpZihkPjEpZm9yKGg9bmV3IEFycmF5KGQp LGk9bmV3IEFycmF5KGQpLGo9bmV3IEFycmF5KGQpO2I8ZDtiKyspY1tiXSYmZmEu aXNGdW5jdGlvbihjW2JdLnByb21pc2UpP2NbYl0ucHJvbWlzZSgpLnByb2dyZXNz KGcoYixpLGgpKS5kb25lKGcoYixqLGMpKS5mYWlsKGYucmVqZWN0KTotLWU7cmV0 dXJuIGV8fGYucmVzb2x2ZVdpdGgoaixjKSxmLnByb21pc2UoKX19KTt2YXIgd2E7 ZmEuZm4ucmVhZHk9ZnVuY3Rpb24oYSl7cmV0dXJuIGZhLnJlYWR5LnByb21pc2Uo KS5kb25lKGEpLHRoaXN9LGZhLmV4dGVuZCh7aXNSZWFkeTohMSxyZWFkeVdhaXQ6 MSxob2xkUmVhZHk6ZnVuY3Rpb24oYSl7YT9mYS5yZWFkeVdhaXQrKzpmYS5yZWFk eSghMCl9LHJlYWR5OmZ1bmN0aW9uKGEpeyhhPT09ITA/LS1mYS5yZWFkeVdhaXQ6 ZmEuaXNSZWFkeSl8fChmYS5pc1JlYWR5PSEwLGEhPT0hMCYmLS1mYS5yZWFkeVdh aXQ+MHx8KHdhLnJlc29sdmVXaXRoKFgsW2ZhXSksZmEuZm4udHJpZ2dlckhhbmRs ZXImJihmYShYKS50cmlnZ2VySGFuZGxlcigicmVhZHkiKSxmYShYKS5vZmYoInJl YWR5IikpKSl9fSksZmEucmVhZHkucHJvbWlzZT1mdW5jdGlvbihiKXtyZXR1cm4g d2F8fCh3YT1mYS5EZWZlcnJlZCgpLCJjb21wbGV0ZSI9PT1YLnJlYWR5U3RhdGV8 fCJsb2FkaW5nIiE9PVgucmVhZHlTdGF0ZSYmIVguZG9jdW1lbnRFbGVtZW50LmRv U2Nyb2xsP2Euc2V0VGltZW91dChmYS5yZWFkeSk6KFguYWRkRXZlbnRMaXN0ZW5l cigiRE9NQ29udGVudExvYWRlZCIsZyksYS5hZGRFdmVudExpc3RlbmVyKCJsb2Fk IixnKSkpLHdhLnByb21pc2UoYil9LGZhLnJlYWR5LnByb21pc2UoKTt2YXIgeGE9 ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7dmFyIGg9MCxpPWEubGVuZ3RoLGo9bnVs bD09YztpZigib2JqZWN0Ij09PWZhLnR5cGUoYykpe2U9ITA7Zm9yKGggaW4gYyl4 YShhLGIsaCxjW2hdLCEwLGYsZyl9ZWxzZSBpZih2b2lkIDAhPT1kJiYoZT0hMCxm YS5pc0Z1bmN0aW9uKGQpfHwoZz0hMCksaiYmKGc/KGIuY2FsbChhLGQpLGI9bnVs bCk6KGo9YixiPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gai5jYWxsKGZhKGEpLGMp fSkpLGIpKWZvcig7aDxpO2grKyliKGFbaF0sYyxnP2Q6ZC5jYWxsKGFbaF0saCxi KGFbaF0sYykpKTtyZXR1cm4gZT9hOmo/Yi5jYWxsKGEpOmk/YihhWzBdLGMpOmZ9 LHlhPWZ1bmN0aW9uKGEpe3JldHVybiAxPT09YS5ub2RlVHlwZXx8OT09PWEubm9k ZVR5cGV8fCErYS5ub2RlVHlwZX07aC51aWQ9MSxoLnByb3RvdHlwZT17cmVnaXN0 ZXI6ZnVuY3Rpb24oYSxiKXt2YXIgYz1ifHx7fTtyZXR1cm4gYS5ub2RlVHlwZT9h W3RoaXMuZXhwYW5kb109YzpPYmplY3QuZGVmaW5lUHJvcGVydHkoYSx0aGlzLmV4 cGFuZG8se3ZhbHVlOmMsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksYVt0 aGlzLmV4cGFuZG9dfSxjYWNoZTpmdW5jdGlvbihhKXtpZigheWEoYSkpcmV0dXJu e307dmFyIGI9YVt0aGlzLmV4cGFuZG9dO3JldHVybiBifHwoYj17fSx5YShhKSYm KGEubm9kZVR5cGU/YVt0aGlzLmV4cGFuZG9dPWI6T2JqZWN0LmRlZmluZVByb3Bl cnR5KGEsdGhpcy5leHBhbmRvLHt2YWx1ZTpiLGNvbmZpZ3VyYWJsZTohMH0pKSks Yn0sc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlPXRoaXMuY2FjaGUoYSk7aWYo InN0cmluZyI9PXR5cGVvZiBiKWVbYl09YztlbHNlIGZvcihkIGluIGIpZVtkXT1i W2RdO3JldHVybiBlfSxnZXQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdm9pZCAwPT09 Yj90aGlzLmNhY2hlKGEpOmFbdGhpcy5leHBhbmRvXSYmYVt0aGlzLmV4cGFuZG9d W2JdfSxhY2Nlc3M6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkO3JldHVybiB2b2lkIDA9 PT1ifHxiJiYic3RyaW5nIj09dHlwZW9mIGImJnZvaWQgMD09PWM/KGQ9dGhpcy5n ZXQoYSxiKSx2b2lkIDAhPT1kP2Q6dGhpcy5nZXQoYSxmYS5jYW1lbENhc2UoYikp KToodGhpcy5zZXQoYSxiLGMpLHZvaWQgMCE9PWM/YzpiKX0scmVtb3ZlOmZ1bmN0 aW9uKGEsYil7dmFyIGMsZCxlLGY9YVt0aGlzLmV4cGFuZG9dO2lmKHZvaWQgMCE9 PWYpe2lmKHZvaWQgMD09PWIpdGhpcy5yZWdpc3RlcihhKTtlbHNle2ZhLmlzQXJy YXkoYik/ZD1iLmNvbmNhdChiLm1hcChmYS5jYW1lbENhc2UpKTooZT1mYS5jYW1l bENhc2UoYiksYiBpbiBmP2Q9W2IsZV06KGQ9ZSxkPWQgaW4gZj9bZF06ZC5tYXRj aCh2YSl8fFtdKSksYz1kLmxlbmd0aDt3aGlsZShjLS0pZGVsZXRlIGZbZFtjXV19 KHZvaWQgMD09PWJ8fGZhLmlzRW1wdHlPYmplY3QoZikpJiYoYS5ub2RlVHlwZT9h W3RoaXMuZXhwYW5kb109dm9pZCAwOmRlbGV0ZSBhW3RoaXMuZXhwYW5kb10pfX0s aGFzRGF0YTpmdW5jdGlvbihhKXt2YXIgYj1hW3RoaXMuZXhwYW5kb107cmV0dXJu IHZvaWQgMCE9PWImJiFmYS5pc0VtcHR5T2JqZWN0KGIpfX07dmFyIHphPW5ldyBo LEFhPW5ldyBoLEJhPS9eKD86XHtbXHdcV10qXH18XFtbXHdcV10qXF0pJC8sQ2E9 L1tBLVpdL2c7ZmEuZXh0ZW5kKHtoYXNEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiBB YS5oYXNEYXRhKGEpfHx6YS5oYXNEYXRhKGEpfSxkYXRhOmZ1bmN0aW9uKGEsYixj KXtyZXR1cm4gQWEuYWNjZXNzKGEsYixjKX0scmVtb3ZlRGF0YTpmdW5jdGlvbihh LGIpe0FhLnJlbW92ZShhLGIpfSxfZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJu IHphLmFjY2VzcyhhLGIsYyl9LF9yZW1vdmVEYXRhOmZ1bmN0aW9uKGEsYil7emEu cmVtb3ZlKGEsYil9fSksZmEuZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7 dmFyIGMsZCxlLGY9dGhpc1swXSxnPWYmJmYuYXR0cmlidXRlcztpZih2b2lkIDA9 PT1hKXtpZih0aGlzLmxlbmd0aCYmKGU9QWEuZ2V0KGYpLDE9PT1mLm5vZGVUeXBl JiYhemEuZ2V0KGYsImhhc0RhdGFBdHRycyIpKSl7Yz1nLmxlbmd0aDt3aGlsZShj LS0pZ1tjXSYmKGQ9Z1tjXS5uYW1lLDA9PT1kLmluZGV4T2YoImRhdGEtIikmJihk PWZhLmNhbWVsQ2FzZShkLnNsaWNlKDUpKSxpKGYsZCxlW2RdKSkpO3phLnNldChm LCJoYXNEYXRhQXR0cnMiLCEwKX1yZXR1cm4gZX1yZXR1cm4ib2JqZWN0Ij09dHlw ZW9mIGE/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7QWEuc2V0KHRoaXMsYSl9KTp4YSh0 aGlzLGZ1bmN0aW9uKGIpe3ZhciBjLGQ7aWYoZiYmdm9pZCAwPT09Yil7aWYoYz1B YS5nZXQoZixhKXx8QWEuZ2V0KGYsYS5yZXBsYWNlKENhLCItJCYiKS50b0xvd2Vy Q2FzZSgpKSx2b2lkIDAhPT1jKXJldHVybiBjO2lmKGQ9ZmEuY2FtZWxDYXNlKGEp LGM9QWEuZ2V0KGYsZCksdm9pZCAwIT09YylyZXR1cm4gYztpZihjPWkoZixkLHZv aWQgMCksdm9pZCAwIT09YylyZXR1cm4gY31lbHNlIGQ9ZmEuY2FtZWxDYXNlKGEp LHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBjPUFhLmdldCh0aGlzLGQpO0FhLnNl dCh0aGlzLGQsYiksYS5pbmRleE9mKCItIik+LTEmJnZvaWQgMCE9PWMmJkFhLnNl dCh0aGlzLGEsYil9KX0sbnVsbCxiLGFyZ3VtZW50cy5sZW5ndGg+MSxudWxsLCEw KX0scmVtb3ZlRGF0YTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0 aW9uKCl7QWEucmVtb3ZlKHRoaXMsYSl9KX19KSxmYS5leHRlbmQoe3F1ZXVlOmZ1 bmN0aW9uKGEsYixjKXt2YXIgZDtpZihhKXJldHVybiBiPShifHwiZngiKSsicXVl dWUiLGQ9emEuZ2V0KGEsYiksYyYmKCFkfHxmYS5pc0FycmF5KGMpP2Q9emEuYWNj ZXNzKGEsYixmYS5tYWtlQXJyYXkoYykpOmQucHVzaChjKSksZHx8W119LGRlcXVl dWU6ZnVuY3Rpb24oYSxiKXtiPWJ8fCJmeCI7dmFyIGM9ZmEucXVldWUoYSxiKSxk PWMubGVuZ3RoLGU9Yy5zaGlmdCgpLGY9ZmEuX3F1ZXVlSG9va3MoYSxiKSxnPWZ1 bmN0aW9uKCl7ZmEuZGVxdWV1ZShhLGIpfTsiaW5wcm9ncmVzcyI9PT1lJiYoZT1j LnNoaWZ0KCksZC0tKSxlJiYoImZ4Ij09PWImJmMudW5zaGlmdCgiaW5wcm9ncmVz cyIpLGRlbGV0ZSBmLnN0b3AsZS5jYWxsKGEsZyxmKSksIWQmJmYmJmYuZW1wdHku ZmlyZSgpfSxfcXVldWVIb29rczpmdW5jdGlvbihhLGIpe3ZhciBjPWIrInF1ZXVl SG9va3MiO3JldHVybiB6YS5nZXQoYSxjKXx8emEuYWNjZXNzKGEsYyx7ZW1wdHk6 ZmEuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLmFkZChmdW5jdGlvbigpe3phLnJl bW92ZShhLFtiKyJxdWV1ZSIsY10pfSl9KX19KSxmYS5mbi5leHRlbmQoe3F1ZXVl OmZ1bmN0aW9uKGEsYil7dmFyIGM9MjtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGEm JihiPWEsYT0iZngiLGMtLSksYXJndW1lbnRzLmxlbmd0aDxjP2ZhLnF1ZXVlKHRo aXNbMF0sYSk6dm9pZCAwPT09Yj90aGlzOnRoaXMuZWFjaChmdW5jdGlvbigpe3Zh ciBjPWZhLnF1ZXVlKHRoaXMsYSxiKTtmYS5fcXVldWVIb29rcyh0aGlzLGEpLCJm eCI9PT1hJiYiaW5wcm9ncmVzcyIhPT1jWzBdJiZmYS5kZXF1ZXVlKHRoaXMsYSl9 KX0sZGVxdWV1ZTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9u KCl7ZmEuZGVxdWV1ZSh0aGlzLGEpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oYSl7 cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9LHByb21pc2U6ZnVuY3Rpb24o YSxiKXt2YXIgYyxkPTEsZT1mYS5EZWZlcnJlZCgpLGY9dGhpcyxnPXRoaXMubGVu Z3RoLGg9ZnVuY3Rpb24oKXstLWR8fGUucmVzb2x2ZVdpdGgoZixbZl0pfTsic3Ry aW5nIiE9dHlwZW9mIGEmJihiPWEsYT12b2lkIDApLGE9YXx8ImZ4Ijt3aGlsZShn LS0pYz16YS5nZXQoZltnXSxhKyJxdWV1ZUhvb2tzIiksYyYmYy5lbXB0eSYmKGQr KyxjLmVtcHR5LmFkZChoKSk7cmV0dXJuIGgoKSxlLnByb21pc2UoYil9fSk7dmFy IERhPS9bKy1dPyg/OlxkKlwufClcZCsoPzpbZUVdWystXT9cZCt8KS8uc291cmNl LEVhPW5ldyBSZWdFeHAoIl4oPzooWystXSk9fCkoIitEYSsiKShbYS16JV0qKSQi LCJpIiksRmE9WyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXSxHYT1mdW5j dGlvbihhLGIpe3JldHVybiBhPWJ8fGEsIm5vbmUiPT09ZmEuY3NzKGEsImRpc3Bs YXkiKXx8IWZhLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKX0sSGE9L14oPzpj aGVja2JveHxyYWRpbykkL2ksSWE9LzwoW1x3Oi1dKykvLEphPS9eJHxcLyg/Omph dmF8ZWNtYSlzY3JpcHQvaSxLYT17b3B0aW9uOlsxLCI8c2VsZWN0IG11bHRpcGxl PSdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il0sdGhlYWQ6WzEsIjx0YWJsZT4iLCI8 L3RhYmxlPiJdLGNvbDpbMiwiPHRhYmxlPjxjb2xncm91cD4iLCI8L2NvbGdyb3Vw PjwvdGFibGU+Il0sdHI6WzIsIjx0YWJsZT48dGJvZHk+IiwiPC90Ym9keT48L3Rh YmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+ PC90YWJsZT4iXSxfZGVmYXVsdDpbMCwiIiwiIl19O0thLm9wdGdyb3VwPUthLm9w dGlvbixLYS50Ym9keT1LYS50Zm9vdD1LYS5jb2xncm91cD1LYS5jYXB0aW9uPUth LnRoZWFkLEthLnRoPUthLnRkO3ZhciBMYT0vPHwmIz9cdys7LzshZnVuY3Rpb24o KXt2YXIgYT1YLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxiPWEuYXBwZW5kQ2hp bGQoWC5jcmVhdGVFbGVtZW50KCJkaXYiKSksYz1YLmNyZWF0ZUVsZW1lbnQoImlu cHV0Iik7Yy5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLGMuc2V0QXR0cmli dXRlKCJjaGVja2VkIiwiY2hlY2tlZCIpLGMuc2V0QXR0cmlidXRlKCJuYW1lIiwi dCIpLGIuYXBwZW5kQ2hpbGQoYyksZGEuY2hlY2tDbG9uZT1iLmNsb25lTm9kZSgh MCkuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuY2hlY2tlZCxiLmlubmVySFRNTD0i PHRleHRhcmVhPng8L3RleHRhcmVhPiIsZGEubm9DbG9uZUNoZWNrZWQ9ISFiLmNs b25lTm9kZSghMCkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZX0oKTt2YXIgTWE9L15r ZXkvLE5hPS9eKD86bW91c2V8cG9pbnRlcnxjb250ZXh0bWVudXxkcmFnfGRyb3Ap fGNsaWNrLyxPYT0vXihbXi5dKikoPzpcLiguKyl8KS87ZmEuZXZlbnQ9e2dsb2Jh bDp7fSxhZGQ6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZixnLGgsaSxqLGssbCxt LG4sbyxwLHE9emEuZ2V0KGEpO2lmKHEpe2MuaGFuZGxlciYmKGY9YyxjPWYuaGFu ZGxlcixlPWYuc2VsZWN0b3IpLGMuZ3VpZHx8KGMuZ3VpZD1mYS5ndWlkKyspLChp PXEuZXZlbnRzKXx8KGk9cS5ldmVudHM9e30pLChnPXEuaGFuZGxlKXx8KGc9cS5o YW5kbGU9ZnVuY3Rpb24oYil7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBmYSYm ZmEuZXZlbnQudHJpZ2dlcmVkIT09Yi50eXBlP2ZhLmV2ZW50LmRpc3BhdGNoLmFw cGx5KGEsYXJndW1lbnRzKTp2b2lkIDB9KSxiPShifHwiIikubWF0Y2godmEpfHxb IiJdLGo9Yi5sZW5ndGg7d2hpbGUoai0tKWg9T2EuZXhlYyhiW2pdKXx8W10sbj1w PWhbMV0sbz0oaFsyXXx8IiIpLnNwbGl0KCIuIikuc29ydCgpLG4mJihsPWZhLmV2 ZW50LnNwZWNpYWxbbl18fHt9LG49KGU/bC5kZWxlZ2F0ZVR5cGU6bC5iaW5kVHlw ZSl8fG4sbD1mYS5ldmVudC5zcGVjaWFsW25dfHx7fSxrPWZhLmV4dGVuZCh7dHlw ZTpuLG9yaWdUeXBlOnAsZGF0YTpkLGhhbmRsZXI6YyxndWlkOmMuZ3VpZCxzZWxl Y3RvcjplLG5lZWRzQ29udGV4dDplJiZmYS5leHByLm1hdGNoLm5lZWRzQ29udGV4 dC50ZXN0KGUpLG5hbWVzcGFjZTpvLmpvaW4oIi4iKX0sZiksKG09aVtuXSl8fCht PWlbbl09W10sbS5kZWxlZ2F0ZUNvdW50PTAsbC5zZXR1cCYmbC5zZXR1cC5jYWxs KGEsZCxvLGcpIT09ITF8fGEuYWRkRXZlbnRMaXN0ZW5lciYmYS5hZGRFdmVudExp c3RlbmVyKG4sZykpLGwuYWRkJiYobC5hZGQuY2FsbChhLGspLGsuaGFuZGxlci5n dWlkfHwoay5oYW5kbGVyLmd1aWQ9Yy5ndWlkKSksZT9tLnNwbGljZShtLmRlbGVn YXRlQ291bnQrKywwLGspOm0ucHVzaChrKSxmYS5ldmVudC5nbG9iYWxbbl09ITAp fX0scmVtb3ZlOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGYsZyxoLGksaixrLGws bSxuLG8scCxxPXphLmhhc0RhdGEoYSkmJnphLmdldChhKTtpZihxJiYoaT1xLmV2 ZW50cykpe2I9KGJ8fCIiKS5tYXRjaCh2YSl8fFsiIl0saj1iLmxlbmd0aDt3aGls ZShqLS0paWYoaD1PYS5leGVjKGJbal0pfHxbXSxuPXA9aFsxXSxvPShoWzJdfHwi Iikuc3BsaXQoIi4iKS5zb3J0KCksbil7bD1mYS5ldmVudC5zcGVjaWFsW25dfHx7 fSxuPShkP2wuZGVsZWdhdGVUeXBlOmwuYmluZFR5cGUpfHxuLG09aVtuXXx8W10s aD1oWzJdJiZuZXcgUmVnRXhwKCIoXnxcXC4pIitvLmpvaW4oIlxcLig/Oi4qXFwu fCkiKSsiKFxcLnwkKSIpLGc9Zj1tLmxlbmd0aDt3aGlsZShmLS0paz1tW2ZdLCFl JiZwIT09ay5vcmlnVHlwZXx8YyYmYy5ndWlkIT09ay5ndWlkfHxoJiYhaC50ZXN0 KGsubmFtZXNwYWNlKXx8ZCYmZCE9PWsuc2VsZWN0b3ImJigiKioiIT09ZHx8IWsu c2VsZWN0b3IpfHwobS5zcGxpY2UoZiwxKSxrLnNlbGVjdG9yJiZtLmRlbGVnYXRl Q291bnQtLSxsLnJlbW92ZSYmbC5yZW1vdmUuY2FsbChhLGspKTtnJiYhbS5sZW5n dGgmJihsLnRlYXJkb3duJiZsLnRlYXJkb3duLmNhbGwoYSxvLHEuaGFuZGxlKSE9 PSExfHxmYS5yZW1vdmVFdmVudChhLG4scS5oYW5kbGUpLGRlbGV0ZSBpW25dKX1l bHNlIGZvcihuIGluIGkpZmEuZXZlbnQucmVtb3ZlKGEsbitiW2pdLGMsZCwhMCk7 ZmEuaXNFbXB0eU9iamVjdChpKSYmemEucmVtb3ZlKGEsImhhbmRsZSBldmVudHMi KX19LGRpc3BhdGNoOmZ1bmN0aW9uKGEpe2E9ZmEuZXZlbnQuZml4KGEpO3ZhciBi LGMsZCxlLGYsZz1bXSxoPVkuY2FsbChhcmd1bWVudHMpLGk9KHphLmdldCh0aGlz LCJldmVudHMiKXx8e30pW2EudHlwZV18fFtdLGo9ZmEuZXZlbnQuc3BlY2lhbFth LnR5cGVdfHx7fTtpZihoWzBdPWEsYS5kZWxlZ2F0ZVRhcmdldD10aGlzLCFqLnBy ZURpc3BhdGNofHxqLnByZURpc3BhdGNoLmNhbGwodGhpcyxhKSE9PSExKXtnPWZh LmV2ZW50LmhhbmRsZXJzLmNhbGwodGhpcyxhLGkpLGI9MDt3aGlsZSgoZT1nW2Ir K10pJiYhYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKXthLmN1cnJlbnRUYXJnZXQ9 ZS5lbGVtLGM9MDt3aGlsZSgoZj1lLmhhbmRsZXJzW2MrK10pJiYhYS5pc0ltbWVk aWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpKWEucm5hbWVzcGFjZSYmIWEucm5hbWVz cGFjZS50ZXN0KGYubmFtZXNwYWNlKXx8KGEuaGFuZGxlT2JqPWYsYS5kYXRhPWYu ZGF0YSxkPSgoZmEuZXZlbnQuc3BlY2lhbFtmLm9yaWdUeXBlXXx8e30pLmhhbmRs ZXx8Zi5oYW5kbGVyKS5hcHBseShlLmVsZW0saCksdm9pZCAwIT09ZCYmKGEucmVz dWx0PWQpPT09ITEmJihhLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRp b24oKSkpfXJldHVybiBqLnBvc3REaXNwYXRjaCYmai5wb3N0RGlzcGF0Y2guY2Fs bCh0aGlzLGEpLGEucmVzdWx0fX0saGFuZGxlcnM6ZnVuY3Rpb24oYSxiKXt2YXIg YyxkLGUsZixnPVtdLGg9Yi5kZWxlZ2F0ZUNvdW50LGk9YS50YXJnZXQ7aWYoaCYm aS5ub2RlVHlwZSYmKCJjbGljayIhPT1hLnR5cGV8fGlzTmFOKGEuYnV0dG9uKXx8 YS5idXR0b248MSkpZm9yKDtpIT09dGhpcztpPWkucGFyZW50Tm9kZXx8dGhpcylp ZigxPT09aS5ub2RlVHlwZSYmKGkuZGlzYWJsZWQhPT0hMHx8ImNsaWNrIiE9PWEu dHlwZSkpe2ZvcihkPVtdLGM9MDtjPGg7YysrKWY9YltjXSxlPWYuc2VsZWN0b3Ir IiAiLHZvaWQgMD09PWRbZV0mJihkW2VdPWYubmVlZHNDb250ZXh0P2ZhKGUsdGhp cykuaW5kZXgoaSk+LTE6ZmEuZmluZChlLHRoaXMsbnVsbCxbaV0pLmxlbmd0aCks ZFtlXSYmZC5wdXNoKGYpO2QubGVuZ3RoJiZnLnB1c2goe2VsZW06aSxoYW5kbGVy czpkfSl9cmV0dXJuIGg8Yi5sZW5ndGgmJmcucHVzaCh7ZWxlbTp0aGlzLGhhbmRs ZXJzOmIuc2xpY2UoaCl9KSxnfSxwcm9wczoiYWx0S2V5IGJ1YmJsZXMgY2FuY2Vs YWJsZSBjdHJsS2V5IGN1cnJlbnRUYXJnZXQgZGV0YWlsIGV2ZW50UGhhc2UgbWV0 YUtleSByZWxhdGVkVGFyZ2V0IHNoaWZ0S2V5IHRhcmdldCB0aW1lU3RhbXAgdmll dyB3aGljaCIuc3BsaXQoIiAiKSxmaXhIb29rczp7fSxrZXlIb29rczp7cHJvcHM6 ImNoYXIgY2hhckNvZGUga2V5IGtleUNvZGUiLnNwbGl0KCIgIiksZmlsdGVyOmZ1 bmN0aW9uKGEsYil7cmV0dXJuIG51bGw9PWEud2hpY2gmJihhLndoaWNoPW51bGwh PWIuY2hhckNvZGU/Yi5jaGFyQ29kZTpiLmtleUNvZGUpLGF9fSxtb3VzZUhvb2tz Ontwcm9wczoiYnV0dG9uIGJ1dHRvbnMgY2xpZW50WCBjbGllbnRZIG9mZnNldFgg b2Zmc2V0WSBwYWdlWCBwYWdlWSBzY3JlZW5YIHNjcmVlblkgdG9FbGVtZW50Ii5z cGxpdCgiICIpLGZpbHRlcjpmdW5jdGlvbihhLGIpe3ZhciBjLGQsZSxmPWIuYnV0 dG9uO3JldHVybiBudWxsPT1hLnBhZ2VYJiZudWxsIT1iLmNsaWVudFgmJihjPWEu dGFyZ2V0Lm93bmVyRG9jdW1lbnR8fFgsZD1jLmRvY3VtZW50RWxlbWVudCxlPWMu Ym9keSxhLnBhZ2VYPWIuY2xpZW50WCsoZCYmZC5zY3JvbGxMZWZ0fHxlJiZlLnNj cm9sbExlZnR8fDApLShkJiZkLmNsaWVudExlZnR8fGUmJmUuY2xpZW50TGVmdHx8 MCksYS5wYWdlWT1iLmNsaWVudFkrKGQmJmQuc2Nyb2xsVG9wfHxlJiZlLnNjcm9s bFRvcHx8MCktKGQmJmQuY2xpZW50VG9wfHxlJiZlLmNsaWVudFRvcHx8MCkpLGEu d2hpY2h8fHZvaWQgMD09PWZ8fChhLndoaWNoPTEmZj8xOjImZj8zOjQmZj8yOjAp LGF9fSxmaXg6ZnVuY3Rpb24oYSl7aWYoYVtmYS5leHBhbmRvXSlyZXR1cm4gYTt2 YXIgYixjLGQsZT1hLnR5cGUsZj1hLGc9dGhpcy5maXhIb29rc1tlXTtnfHwodGhp cy5maXhIb29rc1tlXT1nPU5hLnRlc3QoZSk/dGhpcy5tb3VzZUhvb2tzOk1hLnRl c3QoZSk/dGhpcy5rZXlIb29rczp7fSksZD1nLnByb3BzP3RoaXMucHJvcHMuY29u Y2F0KGcucHJvcHMpOnRoaXMucHJvcHMsYT1uZXcgZmEuRXZlbnQoZiksYj1kLmxl bmd0aDt3aGlsZShiLS0pYz1kW2JdLGFbY109ZltjXTtyZXR1cm4gYS50YXJnZXR8 fChhLnRhcmdldD1YKSwzPT09YS50YXJnZXQubm9kZVR5cGUmJihhLnRhcmdldD1h LnRhcmdldC5wYXJlbnROb2RlKSxnLmZpbHRlcj9nLmZpbHRlcihhLGYpOmF9LHNw ZWNpYWw6e2xvYWQ6e25vQnViYmxlOiEwfSxmb2N1czp7dHJpZ2dlcjpmdW5jdGlv bigpe2lmKHRoaXMhPT1wKCkmJnRoaXMuZm9jdXMpcmV0dXJuIHRoaXMuZm9jdXMo KSwhMX0sZGVsZWdhdGVUeXBlOiJmb2N1c2luIn0sYmx1cjp7dHJpZ2dlcjpmdW5j dGlvbigpe2lmKHRoaXM9PT1wKCkmJnRoaXMuYmx1cilyZXR1cm4gdGhpcy5ibHVy KCksITF9LGRlbGVnYXRlVHlwZToiZm9jdXNvdXQifSxjbGljazp7dHJpZ2dlcjpm dW5jdGlvbigpe2lmKCJjaGVja2JveCI9PT10aGlzLnR5cGUmJnRoaXMuY2xpY2sm JmZhLm5vZGVOYW1lKHRoaXMsImlucHV0IikpcmV0dXJuIHRoaXMuY2xpY2soKSwh MX0sX2RlZmF1bHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGZhLm5vZGVOYW1lKGEudGFy Z2V0LCJhIil9fSxiZWZvcmV1bmxvYWQ6e3Bvc3REaXNwYXRjaDpmdW5jdGlvbihh KXt2b2lkIDAhPT1hLnJlc3VsdCYmYS5vcmlnaW5hbEV2ZW50JiYoYS5vcmlnaW5h bEV2ZW50LnJldHVyblZhbHVlPWEucmVzdWx0KX19fX0sZmEucmVtb3ZlRXZlbnQ9 ZnVuY3Rpb24oYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVF dmVudExpc3RlbmVyKGIsYyl9LGZhLkV2ZW50PWZ1bmN0aW9uKGEsYil7cmV0dXJu IHRoaXMgaW5zdGFuY2VvZiBmYS5FdmVudD8oYSYmYS50eXBlPyh0aGlzLm9yaWdp bmFsRXZlbnQ9YSx0aGlzLnR5cGU9YS50eXBlLHRoaXMuaXNEZWZhdWx0UHJldmVu dGVkPWEuZGVmYXVsdFByZXZlbnRlZHx8dm9pZCAwPT09YS5kZWZhdWx0UHJldmVu dGVkJiZhLnJldHVyblZhbHVlPT09ITE/bjpvKTp0aGlzLnR5cGU9YSxiJiZmYS5l eHRlbmQodGhpcyxiKSx0aGlzLnRpbWVTdGFtcD1hJiZhLnRpbWVTdGFtcHx8ZmEu bm93KCksdm9pZCh0aGlzW2ZhLmV4cGFuZG9dPSEwKSk6bmV3IGZhLkV2ZW50KGEs Yil9LGZhLkV2ZW50LnByb3RvdHlwZT17Y29uc3RydWN0b3I6ZmEuRXZlbnQsaXNE ZWZhdWx0UHJldmVudGVkOm8saXNQcm9wYWdhdGlvblN0b3BwZWQ6byxpc0ltbWVk aWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDpvLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9u KCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVu dGVkPW4sYSYmYS5wcmV2ZW50RGVmYXVsdCgpfSxzdG9wUHJvcGFnYXRpb246ZnVu Y3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc1Byb3BhZ2F0 aW9uU3RvcHBlZD1uLGEmJmEuc3RvcFByb3BhZ2F0aW9uKCl9LHN0b3BJbW1lZGlh dGVQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3JpZ2luYWxFdmVu dDt0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPW4sYSYmYS5zdG9w SW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX0s ZmEuZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3Vz ZW91dCIscG9pbnRlcmVudGVyOiJwb2ludGVyb3ZlciIscG9pbnRlcmxlYXZlOiJw b2ludGVyb3V0In0sZnVuY3Rpb24oYSxiKXtmYS5ldmVudC5zcGVjaWFsW2FdPXtk ZWxlZ2F0ZVR5cGU6YixiaW5kVHlwZTpiLGhhbmRsZTpmdW5jdGlvbihhKXt2YXIg YyxkPXRoaXMsZT1hLnJlbGF0ZWRUYXJnZXQsZj1hLmhhbmRsZU9iajtyZXR1cm4g ZSYmKGU9PT1kfHxmYS5jb250YWlucyhkLGUpKXx8KGEudHlwZT1mLm9yaWdUeXBl LGM9Zi5oYW5kbGVyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxhLnR5cGU9YiksY319 fSksZmEuZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4gcSh0 aGlzLGEsYixjLGQpfSxvbmU6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHEodGhp cyxhLGIsYyxkLDEpfSxvZmY6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGU7aWYoYSYm YS5wcmV2ZW50RGVmYXVsdCYmYS5oYW5kbGVPYmopcmV0dXJuIGQ9YS5oYW5kbGVP YmosZmEoYS5kZWxlZ2F0ZVRhcmdldCkub2ZmKGQubmFtZXNwYWNlP2Qub3JpZ1R5 cGUrIi4iK2QubmFtZXNwYWNlOmQub3JpZ1R5cGUsZC5zZWxlY3RvcixkLmhhbmRs ZXIpLHRoaXM7aWYoIm9iamVjdCI9PXR5cGVvZiBhKXtmb3IoZSBpbiBhKXRoaXMu b2ZmKGUsYixhW2VdKTtyZXR1cm4gdGhpc31yZXR1cm4gYiE9PSExJiYiZnVuY3Rp b24iIT10eXBlb2YgYnx8KGM9YixiPXZvaWQgMCksYz09PSExJiYoYz1vKSx0aGlz LmVhY2goZnVuY3Rpb24oKXtmYS5ldmVudC5yZW1vdmUodGhpcyxhLGMsYil9KX19 KTt2YXIgUGE9LzwoPyFhcmVhfGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlu a3xtZXRhfHBhcmFtKSgoW1x3Oi1dKylbXj5dKilcLz4vZ2ksUWE9LzxzY3JpcHR8 PHN0eWxlfDxsaW5rL2ksUmE9L2NoZWNrZWRccyooPzpbXj1dfD1ccyouY2hlY2tl ZC4pL2ksU2E9L150cnVlXC8oLiopLyxUYT0vXlxzKjwhKD86XFtDREFUQVxbfC0t KXwoPzpcXVxdfC0tKT5ccyokL2c7ZmEuZXh0ZW5kKHtodG1sUHJlZmlsdGVyOmZ1 bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoUGEsIjwkMT48LyQyPiIpfSxjbG9u ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmLGcsaD1hLmNsb25lTm9kZSghMCks aT1mYS5jb250YWlucyhhLm93bmVyRG9jdW1lbnQsYSk7aWYoIShkYS5ub0Nsb25l Q2hlY2tlZHx8MSE9PWEubm9kZVR5cGUmJjExIT09YS5ub2RlVHlwZXx8ZmEuaXNY TUxEb2MoYSkpKWZvcihnPWsoaCksZj1rKGEpLGQ9MCxlPWYubGVuZ3RoO2Q8ZTtk KyspdihmW2RdLGdbZF0pO2lmKGIpaWYoYylmb3IoZj1mfHxrKGEpLGc9Z3x8ayho KSxkPTAsZT1mLmxlbmd0aDtkPGU7ZCsrKXUoZltkXSxnW2RdKTtlbHNlIHUoYSxo KTtyZXR1cm4gZz1rKGgsInNjcmlwdCIpLGcubGVuZ3RoPjAmJmwoZywhaSYmayhh LCJzY3JpcHQiKSksaH0sY2xlYW5EYXRhOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYixj LGQsZT1mYS5ldmVudC5zcGVjaWFsLGY9MDt2b2lkIDAhPT0oYz1hW2ZdKTtmKysp aWYoeWEoYykpe2lmKGI9Y1t6YS5leHBhbmRvXSl7aWYoYi5ldmVudHMpZm9yKGQg aW4gYi5ldmVudHMpZVtkXT9mYS5ldmVudC5yZW1vdmUoYyxkKTpmYS5yZW1vdmVF dmVudChjLGQsYi5oYW5kbGUpO2NbemEuZXhwYW5kb109dm9pZCAwfWNbQWEuZXhw YW5kb10mJihjW0FhLmV4cGFuZG9dPXZvaWQgMCl9fX0pLGZhLmZuLmV4dGVuZCh7 ZG9tTWFuaXA6dyxkZXRhY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIHgodGhpcyxhLCEw KX0scmVtb3ZlOmZ1bmN0aW9uKGEpe3JldHVybiB4KHRoaXMsYSl9LHRleHQ6ZnVu Y3Rpb24oYSl7cmV0dXJuIHhhKHRoaXMsZnVuY3Rpb24oYSl7cmV0dXJuIHZvaWQg MD09PWE/ZmEudGV4dCh0aGlzKTp0aGlzLmVtcHR5KCkuZWFjaChmdW5jdGlvbigp ezEhPT10aGlzLm5vZGVUeXBlJiYxMSE9PXRoaXMubm9kZVR5cGUmJjkhPT10aGlz Lm5vZGVUeXBlfHwodGhpcy50ZXh0Q29udGVudD1hKX0pfSxudWxsLGEsYXJndW1l bnRzLmxlbmd0aCl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiB3KHRoaXMsYXJn dW1lbnRzLGZ1bmN0aW9uKGEpe2lmKDE9PT10aGlzLm5vZGVUeXBlfHwxMT09PXRo aXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgYj1yKHRoaXMsYSk7 Yi5hcHBlbmRDaGlsZChhKX19KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiB3 KHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpe2lmKDE9PT10aGlzLm5vZGVUeXBl fHwxMT09PXRoaXMubm9kZVR5cGV8fDk9PT10aGlzLm5vZGVUeXBlKXt2YXIgYj1y KHRoaXMsYSk7Yi5pbnNlcnRCZWZvcmUoYSxiLmZpcnN0Q2hpbGQpfX0pfSxiZWZv cmU6ZnVuY3Rpb24oKXtyZXR1cm4gdyh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihh KXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUo YSx0aGlzKX0pfSxhZnRlcjpmdW5jdGlvbigpe3JldHVybiB3KHRoaXMsYXJndW1l bnRzLGZ1bmN0aW9uKGEpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2Rl Lmluc2VydEJlZm9yZShhLHRoaXMubmV4dFNpYmxpbmcpfSl9LGVtcHR5OmZ1bmN0 aW9uKCl7Zm9yKHZhciBhLGI9MDtudWxsIT0oYT10aGlzW2JdKTtiKyspMT09PWEu bm9kZVR5cGUmJihmYS5jbGVhbkRhdGEoayhhLCExKSksYS50ZXh0Q29udGVudD0i Iik7cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9bnVs bCE9YSYmYSxiPW51bGw9PWI/YTpiLHRoaXMubWFwKGZ1bmN0aW9uKCl7cmV0dXJu IGZhLmNsb25lKHRoaXMsYSxiKX0pfSxodG1sOmZ1bmN0aW9uKGEpe3JldHVybiB4 YSh0aGlzLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXNbMF18fHt9LGM9MCxkPXRoaXMu bGVuZ3RoO2lmKHZvaWQgMD09PWEmJjE9PT1iLm5vZGVUeXBlKXJldHVybiBiLmlu bmVySFRNTDtpZigic3RyaW5nIj09dHlwZW9mIGEmJiFRYS50ZXN0KGEpJiYhS2Fb KElhLmV4ZWMoYSl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCldKXthPWZhLmh0 bWxQcmVmaWx0ZXIoYSk7dHJ5e2Zvcig7YzxkO2MrKyliPXRoaXNbY118fHt9LDE9 PT1iLm5vZGVUeXBlJiYoZmEuY2xlYW5EYXRhKGsoYiwhMSkpLGIuaW5uZXJIVE1M PWEpO2I9MH1jYXRjaChlKXt9fWImJnRoaXMuZW1wdHkoKS5hcHBlbmQoYSl9LG51 bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0scmVwbGFjZVdpdGg6ZnVuY3Rpb24oKXt2 YXIgYT1bXTtyZXR1cm4gdyh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihiKXt2YXIg Yz10aGlzLnBhcmVudE5vZGU7ZmEuaW5BcnJheSh0aGlzLGEpPDAmJihmYS5jbGVh bkRhdGEoayh0aGlzKSksYyYmYy5yZXBsYWNlQ2hpbGQoYix0aGlzKSl9LGEpfX0p LGZhLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIs aW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFj ZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihhLGIpe2ZhLmZuW2FdPWZ1bmN0 aW9uKGEpe2Zvcih2YXIgYyxkPVtdLGU9ZmEoYSksZj1lLmxlbmd0aC0xLGc9MDtn PD1mO2crKyljPWc9PT1mP3RoaXM6dGhpcy5jbG9uZSghMCksZmEoZVtnXSlbYl0o YyksJC5hcHBseShkLGMuZ2V0KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhkKX19 KTt2YXIgVWEsVmE9e0hUTUw6ImJsb2NrIixCT0RZOiJibG9jayJ9LFdhPS9ebWFy Z2luLyxYYT1uZXcgUmVnRXhwKCJeKCIrRGErIikoPyFweClbYS16JV0rJCIsImki KSxZYT1mdW5jdGlvbihiKXt2YXIgYz1iLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZp ZXc7cmV0dXJuIGMmJmMub3BlbmVyfHwoYz1hKSxjLmdldENvbXB1dGVkU3R5bGUo Yil9LFphPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlLGYsZz17fTtmb3IoZiBpbiBi KWdbZl09YS5zdHlsZVtmXSxhLnN0eWxlW2ZdPWJbZl07ZT1jLmFwcGx5KGEsZHx8 W10pO2ZvcihmIGluIGIpYS5zdHlsZVtmXT1nW2ZdO3JldHVybiBlfSwkYT1YLmRv Y3VtZW50RWxlbWVudDshZnVuY3Rpb24oKXtmdW5jdGlvbiBiKCl7aC5zdHlsZS5j c3NUZXh0PSItd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1z aXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7cG9zaXRpb246 cmVsYXRpdmU7ZGlzcGxheTpibG9jazttYXJnaW46YXV0bztib3JkZXI6MXB4O3Bh ZGRpbmc6MXB4O3RvcDoxJTt3aWR0aDo1MCUiLGguaW5uZXJIVE1MPSIiLCRhLmFw cGVuZENoaWxkKGcpO3ZhciBiPWEuZ2V0Q29tcHV0ZWRTdHlsZShoKTtjPSIxJSIh PT1iLnRvcCxmPSIycHgiPT09Yi5tYXJnaW5MZWZ0LGQ9IjRweCI9PT1iLndpZHRo LGguc3R5bGUubWFyZ2luUmlnaHQ9IjUwJSIsZT0iNHB4Ij09PWIubWFyZ2luUmln aHQsJGEucmVtb3ZlQ2hpbGQoZyl9dmFyIGMsZCxlLGYsZz1YLmNyZWF0ZUVsZW1l bnQoImRpdiIpLGg9WC5jcmVhdGVFbGVtZW50KCJkaXYiKTtoLnN0eWxlJiYoaC5z dHlsZS5iYWNrZ3JvdW5kQ2xpcD0iY29udGVudC1ib3giLGguY2xvbmVOb2RlKCEw KS5zdHlsZS5iYWNrZ3JvdW5kQ2xpcD0iIixkYS5jbGVhckNsb25lU3R5bGU9ImNv bnRlbnQtYm94Ij09PWguc3R5bGUuYmFja2dyb3VuZENsaXAsZy5zdHlsZS5jc3NU ZXh0PSJib3JkZXI6MDt3aWR0aDo4cHg7aGVpZ2h0OjA7dG9wOjA7bGVmdDotOTk5 OXB4O3BhZGRpbmc6MDttYXJnaW4tdG9wOjFweDtwb3NpdGlvbjphYnNvbHV0ZSIs Zy5hcHBlbmRDaGlsZChoKSxmYS5leHRlbmQoZGEse3BpeGVsUG9zaXRpb246ZnVu Y3Rpb24oKXtyZXR1cm4gYigpLGN9LGJveFNpemluZ1JlbGlhYmxlOmZ1bmN0aW9u KCl7cmV0dXJuIG51bGw9PWQmJmIoKSxkfSxwaXhlbE1hcmdpblJpZ2h0OmZ1bmN0 aW9uKCl7cmV0dXJuIG51bGw9PWQmJmIoKSxlfSxyZWxpYWJsZU1hcmdpbkxlZnQ6 ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09ZCYmYigpLGZ9LHJlbGlhYmxlTWFyZ2lu UmlnaHQ6ZnVuY3Rpb24oKXt2YXIgYixjPWguYXBwZW5kQ2hpbGQoWC5jcmVhdGVF bGVtZW50KCJkaXYiKSk7cmV0dXJuIGMuc3R5bGUuY3NzVGV4dD1oLnN0eWxlLmNz c1RleHQ9Ii13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDtib3gtc2l6aW5n OmNvbnRlbnQtYm94O2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjA7Ym9yZGVyOjA7cGFk ZGluZzowIixjLnN0eWxlLm1hcmdpblJpZ2h0PWMuc3R5bGUud2lkdGg9IjAiLGgu c3R5bGUud2lkdGg9IjFweCIsJGEuYXBwZW5kQ2hpbGQoZyksYj0hcGFyc2VGbG9h dChhLmdldENvbXB1dGVkU3R5bGUoYykubWFyZ2luUmlnaHQpLCRhLnJlbW92ZUNo aWxkKGcpLGgucmVtb3ZlQ2hpbGQoYyksYn19KSl9KCk7dmFyIF9hPS9eKG5vbmV8 dGFibGUoPyEtY1tlYV0pLispLyxhYj17cG9zaXRpb246ImFic29sdXRlIix2aXNp YmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6ImJsb2NrIn0sYmI9e2xldHRlclNwYWNp bmc6IjAiLGZvbnRXZWlnaHQ6IjQwMCJ9LGNiPVsiV2Via2l0IiwiTyIsIk1veiIs Im1zIl0sZGI9WC5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZTtmYS5leHRlbmQo e2Nzc0hvb2tzOntvcGFjaXR5OntnZXQ6ZnVuY3Rpb24oYSxiKXtpZihiKXt2YXIg Yz1BKGEsIm9wYWNpdHkiKTtyZXR1cm4iIj09PWM/IjEiOmN9fX19LGNzc051bWJl cjp7YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsY29sdW1uQ291bnQ6ITAsZmls bE9wYWNpdHk6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0 OiEwLGxpbmVIZWlnaHQ6ITAsb3BhY2l0eTohMCxvcmRlcjohMCxvcnBoYW5zOiEw LHdpZG93czohMCx6SW5kZXg6ITAsem9vbTohMH0sY3NzUHJvcHM6eyJmbG9hdCI6 ImNzc0Zsb2F0In0sc3R5bGU6ZnVuY3Rpb24oYSxiLGMsZCl7aWYoYSYmMyE9PWEu bm9kZVR5cGUmJjghPT1hLm5vZGVUeXBlJiZhLnN0eWxlKXt2YXIgZSxmLGcsaD1m YS5jYW1lbENhc2UoYiksaT1hLnN0eWxlO3JldHVybiBiPWZhLmNzc1Byb3BzW2hd fHwoZmEuY3NzUHJvcHNbaF09QyhoKXx8aCksZz1mYS5jc3NIb29rc1tiXXx8ZmEu Y3NzSG9va3NbaF0sdm9pZCAwPT09Yz9nJiYiZ2V0ImluIGcmJnZvaWQgMCE9PShl PWcuZ2V0KGEsITEsZCkpP2U6aVtiXTooZj10eXBlb2YgYywic3RyaW5nIj09PWYm JihlPUVhLmV4ZWMoYykpJiZlWzFdJiYoYz1qKGEsYixlKSxmPSJudW1iZXIiKSxu dWxsIT1jJiZjPT09YyYmKCJudW1iZXIiPT09ZiYmKGMrPWUmJmVbM118fChmYS5j c3NOdW1iZXJbaF0/IiI6InB4IikpLGRhLmNsZWFyQ2xvbmVTdHlsZXx8IiIhPT1j fHwwIT09Yi5pbmRleE9mKCJiYWNrZ3JvdW5kIil8fChpW2JdPSJpbmhlcml0Iiks ZyYmInNldCJpbiBnJiZ2b2lkIDA9PT0oYz1nLnNldChhLGMsZCkpfHwoaVtiXT1j KSksdm9pZCAwKX19LGNzczpmdW5jdGlvbihhLGIsYyxkKXt2YXIgZSxmLGcsaD1m YS5jYW1lbENhc2UoYik7cmV0dXJuIGI9ZmEuY3NzUHJvcHNbaF18fChmYS5jc3NQ cm9wc1toXT1DKGgpfHxoKSxnPWZhLmNzc0hvb2tzW2JdfHxmYS5jc3NIb29rc1to XSxnJiYiZ2V0ImluIGcmJihlPWcuZ2V0KGEsITAsYykpLHZvaWQgMD09PWUmJihl PUEoYSxiLGQpKSwibm9ybWFsIj09PWUmJmIgaW4gYmImJihlPWJiW2JdKSwiIj09 PWN8fGM/KGY9cGFyc2VGbG9hdChlKSxjPT09ITB8fGlzRmluaXRlKGYpP2Z8fDA6 ZSk6ZX19KSxmYS5lYWNoKFsiaGVpZ2h0Iiwid2lkdGgiXSxmdW5jdGlvbihhLGIp e2ZhLmNzc0hvb2tzW2JdPXtnZXQ6ZnVuY3Rpb24oYSxjLGQpe2lmKGMpcmV0dXJu IF9hLnRlc3QoZmEuY3NzKGEsImRpc3BsYXkiKSkmJjA9PT1hLm9mZnNldFdpZHRo P1phKGEsYWIsZnVuY3Rpb24oKXtyZXR1cm4gRihhLGIsZCl9KTpGKGEsYixkKX0s c2V0OmZ1bmN0aW9uKGEsYyxkKXt2YXIgZSxmPWQmJllhKGEpLGc9ZCYmRShhLGIs ZCwiYm9yZGVyLWJveCI9PT1mYS5jc3MoYSwiYm94U2l6aW5nIiwhMSxmKSxmKTty ZXR1cm4gZyYmKGU9RWEuZXhlYyhjKSkmJiJweCIhPT0oZVszXXx8InB4IikmJihh LnN0eWxlW2JdPWMsYz1mYS5jc3MoYSxiKSksRChhLGMsZyl9fX0pLGZhLmNzc0hv b2tzLm1hcmdpbkxlZnQ9QihkYS5yZWxpYWJsZU1hcmdpbkxlZnQsZnVuY3Rpb24o YSxiKXtpZihiKXJldHVybihwYXJzZUZsb2F0KEEoYSwibWFyZ2luTGVmdCIpKXx8 YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LVphKGEse21hcmdpbkxlZnQ6 MH0sZnVuY3Rpb24oKXtyZXR1cm4gYS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5s ZWZ0fSkpKyJweCJ9KSxmYS5jc3NIb29rcy5tYXJnaW5SaWdodD1CKGRhLnJlbGlh YmxlTWFyZ2luUmlnaHQsZnVuY3Rpb24oYSxiKXtpZihiKXJldHVybiBaYShhLHtk aXNwbGF5OiJpbmxpbmUtYmxvY2sifSxBLFthLCJtYXJnaW5SaWdodCJdKX0pLGZh LmVhY2goe21hcmdpbjoiIixwYWRkaW5nOiIiLGJvcmRlcjoiV2lkdGgifSxmdW5j dGlvbihhLGIpe2ZhLmNzc0hvb2tzW2ErYl09e2V4cGFuZDpmdW5jdGlvbihjKXtm b3IodmFyIGQ9MCxlPXt9LGY9InN0cmluZyI9PXR5cGVvZiBjP2Muc3BsaXQoIiAi KTpbY107ZDw0O2QrKyllW2ErRmFbZF0rYl09ZltkXXx8ZltkLTJdfHxmWzBdO3Jl dHVybiBlfX0sV2EudGVzdChhKXx8KGZhLmNzc0hvb2tzW2ErYl0uc2V0PUQpfSks ZmEuZm4uZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oYSxiKXtyZXR1cm4geGEodGhpcyxm dW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmPXt9LGc9MDtpZihmYS5pc0FycmF5KGIp KXtmb3IoZD1ZYShhKSxlPWIubGVuZ3RoO2c8ZTtnKyspZltiW2ddXT1mYS5jc3Mo YSxiW2ddLCExLGQpO3JldHVybiBmfXJldHVybiB2b2lkIDAhPT1jP2ZhLnN0eWxl KGEsYixjKTpmYS5jc3MoYSxiKX0sYSxiLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHNo b3c6ZnVuY3Rpb24oKXtyZXR1cm4gRyh0aGlzLCEwKX0saGlkZTpmdW5jdGlvbigp e3JldHVybiBHKHRoaXMpfSx0b2dnbGU6ZnVuY3Rpb24oYSl7cmV0dXJuImJvb2xl YW4iPT10eXBlb2YgYT9hP3RoaXMuc2hvdygpOnRoaXMuaGlkZSgpOnRoaXMuZWFj aChmdW5jdGlvbigpe0dhKHRoaXMpP2ZhKHRoaXMpLnNob3coKTpmYSh0aGlzKS5o aWRlKCl9KX19KSxmYS5Ud2Vlbj1ILEgucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpI LGluaXQ6ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3RoaXMuZWxlbT1hLHRoaXMucHJv cD1jLHRoaXMuZWFzaW5nPWV8fGZhLmVhc2luZy5fZGVmYXVsdCx0aGlzLm9wdGlv bnM9Yix0aGlzLnN0YXJ0PXRoaXMubm93PXRoaXMuY3VyKCksdGhpcy5lbmQ9ZCx0 aGlzLnVuaXQ9Znx8KGZhLmNzc051bWJlcltjXT8iIjoicHgiKX0sY3VyOmZ1bmN0 aW9uKCl7dmFyIGE9SC5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gYSYmYS5n ZXQ/YS5nZXQodGhpcyk6SC5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KHRoaXMpfSxy dW46ZnVuY3Rpb24oYSl7dmFyIGIsYz1ILnByb3BIb29rc1t0aGlzLnByb3BdO3Jl dHVybiB0aGlzLm9wdGlvbnMuZHVyYXRpb24/dGhpcy5wb3M9Yj1mYS5lYXNpbmdb dGhpcy5lYXNpbmddKGEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKmEsMCwxLHRoaXMu b3B0aW9ucy5kdXJhdGlvbik6dGhpcy5wb3M9Yj1hLHRoaXMubm93PSh0aGlzLmVu ZC10aGlzLnN0YXJ0KSpiK3RoaXMuc3RhcnQsdGhpcy5vcHRpb25zLnN0ZXAmJnRo aXMub3B0aW9ucy5zdGVwLmNhbGwodGhpcy5lbGVtLHRoaXMubm93LHRoaXMpLGMm JmMuc2V0P2Muc2V0KHRoaXMpOkgucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlz KSx0aGlzfX0sSC5wcm90b3R5cGUuaW5pdC5wcm90b3R5cGU9SC5wcm90b3R5cGUs SC5wcm9wSG9va3M9e19kZWZhdWx0OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI7cmV0 dXJuIDEhPT1hLmVsZW0ubm9kZVR5cGV8fG51bGwhPWEuZWxlbVthLnByb3BdJiZu dWxsPT1hLmVsZW0uc3R5bGVbYS5wcm9wXT9hLmVsZW1bYS5wcm9wXTooYj1mYS5j c3MoYS5lbGVtLGEucHJvcCwiIiksYiYmImF1dG8iIT09Yj9iOjApfSxzZXQ6ZnVu Y3Rpb24oYSl7ZmEuZnguc3RlcFthLnByb3BdP2ZhLmZ4LnN0ZXBbYS5wcm9wXShh KToxIT09YS5lbGVtLm5vZGVUeXBlfHxudWxsPT1hLmVsZW0uc3R5bGVbZmEuY3Nz UHJvcHNbYS5wcm9wXV0mJiFmYS5jc3NIb29rc1thLnByb3BdP2EuZWxlbVthLnBy b3BdPWEubm93OmZhLnN0eWxlKGEuZWxlbSxhLnByb3AsYS5ub3crYS51bml0KX19 fSxILnByb3BIb29rcy5zY3JvbGxUb3A9SC5wcm9wSG9va3Muc2Nyb2xsTGVmdD17 c2V0OmZ1bmN0aW9uKGEpe2EuZWxlbS5ub2RlVHlwZSYmYS5lbGVtLnBhcmVudE5v ZGUmJihhLmVsZW1bYS5wcm9wXT1hLm5vdyl9fSxmYS5lYXNpbmc9e2xpbmVhcjpm dW5jdGlvbihhKXtyZXR1cm4gYX0sc3dpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuLjUt TWF0aC5jb3MoYSpNYXRoLlBJKS8yfSxfZGVmYXVsdDoic3dpbmcifSxmYS5meD1I LnByb3RvdHlwZS5pbml0LGZhLmZ4LnN0ZXA9e307dmFyIGViLGZiLGdiPS9eKD86 dG9nZ2xlfHNob3d8aGlkZSkkLyxoYj0vcXVldWVIb29rcyQvO2ZhLkFuaW1hdGlv bj1mYS5leHRlbmQoTix7dHdlZW5lcnM6eyIqIjpbZnVuY3Rpb24oYSxiKXt2YXIg Yz10aGlzLmNyZWF0ZVR3ZWVuKGEsYik7cmV0dXJuIGooYy5lbGVtLGEsRWEuZXhl YyhiKSxjKSxjfV19LHR3ZWVuZXI6ZnVuY3Rpb24oYSxiKXtmYS5pc0Z1bmN0aW9u KGEpPyhiPWEsYT1bIioiXSk6YT1hLm1hdGNoKHZhKTtmb3IodmFyIGMsZD0wLGU9 YS5sZW5ndGg7ZDxlO2QrKyljPWFbZF0sTi50d2VlbmVyc1tjXT1OLnR3ZWVuZXJz W2NdfHxbXSxOLnR3ZWVuZXJzW2NdLnVuc2hpZnQoYil9LHByZWZpbHRlcnM6W0xd LHByZWZpbHRlcjpmdW5jdGlvbihhLGIpe2I/Ti5wcmVmaWx0ZXJzLnVuc2hpZnQo YSk6Ti5wcmVmaWx0ZXJzLnB1c2goYSl9fSksZmEuc3BlZWQ9ZnVuY3Rpb24oYSxi LGMpe3ZhciBkPWEmJiJvYmplY3QiPT10eXBlb2YgYT9mYS5leHRlbmQoe30sYSk6 e2NvbXBsZXRlOmN8fCFjJiZifHxmYS5pc0Z1bmN0aW9uKGEpJiZhLGR1cmF0aW9u OmEsZWFzaW5nOmMmJmJ8fGImJiFmYS5pc0Z1bmN0aW9uKGIpJiZifTtyZXR1cm4g ZC5kdXJhdGlvbj1mYS5meC5vZmY/MDoibnVtYmVyIj09dHlwZW9mIGQuZHVyYXRp b24/ZC5kdXJhdGlvbjpkLmR1cmF0aW9uIGluIGZhLmZ4LnNwZWVkcz9mYS5meC5z cGVlZHNbZC5kdXJhdGlvbl06ZmEuZnguc3BlZWRzLl9kZWZhdWx0LG51bGwhPWQu cXVldWUmJmQucXVldWUhPT0hMHx8KGQucXVldWU9ImZ4IiksZC5vbGQ9ZC5jb21w bGV0ZSxkLmNvbXBsZXRlPWZ1bmN0aW9uKCl7ZmEuaXNGdW5jdGlvbihkLm9sZCkm JmQub2xkLmNhbGwodGhpcyksZC5xdWV1ZSYmZmEuZGVxdWV1ZSh0aGlzLGQucXVl dWUpfSxkfSxmYS5mbi5leHRlbmQoe2ZhZGVUbzpmdW5jdGlvbihhLGIsYyxkKXty ZXR1cm4gdGhpcy5maWx0ZXIoR2EpLmNzcygib3BhY2l0eSIsMCkuc2hvdygpLmVu ZCgpLmFuaW1hdGUoe29wYWNpdHk6Yn0sYSxjLGQpfSxhbmltYXRlOmZ1bmN0aW9u KGEsYixjLGQpe3ZhciBlPWZhLmlzRW1wdHlPYmplY3QoYSksZj1mYS5zcGVlZChi LGMsZCksZz1mdW5jdGlvbigpe3ZhciBiPU4odGhpcyxmYS5leHRlbmQoe30sYSks Zik7KGV8fHphLmdldCh0aGlzLCJmaW5pc2giKSkmJmIuc3RvcCghMCl9O3JldHVy biBnLmZpbmlzaD1nLGV8fGYucXVldWU9PT0hMT90aGlzLmVhY2goZyk6dGhpcy5x dWV1ZShmLnF1ZXVlLGcpfSxzdG9wOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD1mdW5j dGlvbihhKXt2YXIgYj1hLnN0b3A7ZGVsZXRlIGEuc3RvcCxiKGMpfTtyZXR1cm4i c3RyaW5nIiE9dHlwZW9mIGEmJihjPWIsYj1hLGE9dm9pZCAwKSxiJiZhIT09ITEm JnRoaXMucXVldWUoYXx8ImZ4IixbXSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFy IGI9ITAsZT1udWxsIT1hJiZhKyJxdWV1ZUhvb2tzIixmPWZhLnRpbWVycyxnPXph LmdldCh0aGlzKTtpZihlKWdbZV0mJmdbZV0uc3RvcCYmZChnW2VdKTtlbHNlIGZv cihlIGluIGcpZ1tlXSYmZ1tlXS5zdG9wJiZoYi50ZXN0KGUpJiZkKGdbZV0pO2Zv cihlPWYubGVuZ3RoO2UtLTspZltlXS5lbGVtIT09dGhpc3x8bnVsbCE9YSYmZltl XS5xdWV1ZSE9PWF8fChmW2VdLmFuaW0uc3RvcChjKSxiPSExLGYuc3BsaWNlKGUs MSkpOyFiJiZjfHxmYS5kZXF1ZXVlKHRoaXMsYSl9KX0sZmluaXNoOmZ1bmN0aW9u KGEpe3JldHVybiBhIT09ITEmJihhPWF8fCJmeCIpLHRoaXMuZWFjaChmdW5jdGlv bigpe3ZhciBiLGM9emEuZ2V0KHRoaXMpLGQ9Y1thKyJxdWV1ZSJdLGU9Y1thKyJx dWV1ZUhvb2tzIl0sZj1mYS50aW1lcnMsZz1kP2QubGVuZ3RoOjA7Zm9yKGMuZmlu aXNoPSEwLGZhLnF1ZXVlKHRoaXMsYSxbXSksZSYmZS5zdG9wJiZlLnN0b3AuY2Fs bCh0aGlzLCEwKSxiPWYubGVuZ3RoO2ItLTspZltiXS5lbGVtPT09dGhpcyYmZlti XS5xdWV1ZT09PWEmJihmW2JdLmFuaW0uc3RvcCghMCksZi5zcGxpY2UoYiwxKSk7 Zm9yKGI9MDtiPGc7YisrKWRbYl0mJmRbYl0uZmluaXNoJiZkW2JdLmZpbmlzaC5j YWxsKHRoaXMpO2RlbGV0ZSBjLmZpbmlzaH0pfX0pLGZhLmVhY2goWyJ0b2dnbGUi LCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGEsYil7dmFyIGM9ZmEuZm5bYl07ZmEu Zm5bYl09ZnVuY3Rpb24oYSxkLGUpe3JldHVybiBudWxsPT1hfHwiYm9vbGVhbiI9 PXR5cGVvZiBhP2MuYXBwbHkodGhpcyxhcmd1bWVudHMpOnRoaXMuYW5pbWF0ZShK KGIsITApLGEsZCxlKX19KSxmYS5lYWNoKHtzbGlkZURvd246Sigic2hvdyIpLHNs aWRlVXA6SigiaGlkZSIpLHNsaWRlVG9nZ2xlOkooInRvZ2dsZSIpLGZhZGVJbjp7 b3BhY2l0eToic2hvdyJ9LGZhZGVPdXQ6e29wYWNpdHk6ImhpZGUifSxmYWRlVG9n Z2xlOntvcGFjaXR5OiJ0b2dnbGUifX0sZnVuY3Rpb24oYSxiKXtmYS5mblthXT1m dW5jdGlvbihhLGMsZCl7cmV0dXJuIHRoaXMuYW5pbWF0ZShiLGEsYyxkKX19KSxm YS50aW1lcnM9W10sZmEuZngudGljaz1mdW5jdGlvbigpe3ZhciBhLGI9MCxjPWZh LnRpbWVyczsKZm9yKGViPWZhLm5vdygpO2I8Yy5sZW5ndGg7YisrKWE9Y1tiXSxh KCl8fGNbYl0hPT1hfHxjLnNwbGljZShiLS0sMSk7Yy5sZW5ndGh8fGZhLmZ4LnN0 b3AoKSxlYj12b2lkIDB9LGZhLmZ4LnRpbWVyPWZ1bmN0aW9uKGEpe2ZhLnRpbWVy cy5wdXNoKGEpLGEoKT9mYS5meC5zdGFydCgpOmZhLnRpbWVycy5wb3AoKX0sZmEu ZnguaW50ZXJ2YWw9MTMsZmEuZnguc3RhcnQ9ZnVuY3Rpb24oKXtmYnx8KGZiPWEu c2V0SW50ZXJ2YWwoZmEuZngudGljayxmYS5meC5pbnRlcnZhbCkpfSxmYS5meC5z dG9wPWZ1bmN0aW9uKCl7YS5jbGVhckludGVydmFsKGZiKSxmYj1udWxsfSxmYS5m eC5zcGVlZHM9e3Nsb3c6NjAwLGZhc3Q6MjAwLF9kZWZhdWx0OjQwMH0sZmEuZm4u ZGVsYXk9ZnVuY3Rpb24oYixjKXtyZXR1cm4gYj1mYS5meD9mYS5meC5zcGVlZHNb Yl18fGI6YixjPWN8fCJmeCIsdGhpcy5xdWV1ZShjLGZ1bmN0aW9uKGMsZCl7dmFy IGU9YS5zZXRUaW1lb3V0KGMsYik7ZC5zdG9wPWZ1bmN0aW9uKCl7YS5jbGVhclRp bWVvdXQoZSl9fSl9LGZ1bmN0aW9uKCl7dmFyIGE9WC5jcmVhdGVFbGVtZW50KCJp bnB1dCIpLGI9WC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKSxjPWIuYXBwZW5kQ2hp bGQoWC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKSk7YS50eXBlPSJjaGVja2JveCIs ZGEuY2hlY2tPbj0iIiE9PWEudmFsdWUsZGEub3B0U2VsZWN0ZWQ9Yy5zZWxlY3Rl ZCxiLmRpc2FibGVkPSEwLGRhLm9wdERpc2FibGVkPSFjLmRpc2FibGVkLGE9WC5j cmVhdGVFbGVtZW50KCJpbnB1dCIpLGEudmFsdWU9InQiLGEudHlwZT0icmFkaW8i LGRhLnJhZGlvVmFsdWU9InQiPT09YS52YWx1ZX0oKTt2YXIgaWIsamI9ZmEuZXhw ci5hdHRySGFuZGxlO2ZhLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIpe3Jl dHVybiB4YSh0aGlzLGZhLmF0dHIsYSxiLGFyZ3VtZW50cy5sZW5ndGg+MSl9LHJl bW92ZUF0dHI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigp e2ZhLnJlbW92ZUF0dHIodGhpcyxhKX0pfX0pLGZhLmV4dGVuZCh7YXR0cjpmdW5j dGlvbihhLGIsYyl7dmFyIGQsZSxmPWEubm9kZVR5cGU7aWYoMyE9PWYmJjghPT1m JiYyIT09ZilyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGEuZ2V0QXR0cmlidXRl P2ZhLnByb3AoYSxiLGMpOigxPT09ZiYmZmEuaXNYTUxEb2MoYSl8fChiPWIudG9M b3dlckNhc2UoKSxlPWZhLmF0dHJIb29rc1tiXXx8KGZhLmV4cHIubWF0Y2guYm9v bC50ZXN0KGIpP2liOnZvaWQgMCkpLHZvaWQgMCE9PWM/bnVsbD09PWM/dm9pZCBm YS5yZW1vdmVBdHRyKGEsYik6ZSYmInNldCJpbiBlJiZ2b2lkIDAhPT0oZD1lLnNl dChhLGMsYikpP2Q6KGEuc2V0QXR0cmlidXRlKGIsYysiIiksYyk6ZSYmImdldCJp biBlJiZudWxsIT09KGQ9ZS5nZXQoYSxiKSk/ZDooZD1mYS5maW5kLmF0dHIoYSxi KSxudWxsPT1kP3ZvaWQgMDpkKSl9LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0 aW9uKGEsYil7aWYoIWRhLnJhZGlvVmFsdWUmJiJyYWRpbyI9PT1iJiZmYS5ub2Rl TmFtZShhLCJpbnB1dCIpKXt2YXIgYz1hLnZhbHVlO3JldHVybiBhLnNldEF0dHJp YnV0ZSgidHlwZSIsYiksYyYmKGEudmFsdWU9YyksYn19fX0scmVtb3ZlQXR0cjpm dW5jdGlvbihhLGIpe3ZhciBjLGQsZT0wLGY9YiYmYi5tYXRjaCh2YSk7aWYoZiYm MT09PWEubm9kZVR5cGUpd2hpbGUoYz1mW2UrK10pZD1mYS5wcm9wRml4W2NdfHxj LGZhLmV4cHIubWF0Y2guYm9vbC50ZXN0KGMpJiYoYVtkXT0hMSksYS5yZW1vdmVB dHRyaWJ1dGUoYyl9fSksaWI9e3NldDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGI9 PT0hMT9mYS5yZW1vdmVBdHRyKGEsYyk6YS5zZXRBdHRyaWJ1dGUoYyxjKSxjfX0s ZmEuZWFjaChmYS5leHByLm1hdGNoLmJvb2wuc291cmNlLm1hdGNoKC9cdysvZyks ZnVuY3Rpb24oYSxiKXt2YXIgYz1qYltiXXx8ZmEuZmluZC5hdHRyO2piW2JdPWZ1 bmN0aW9uKGEsYixkKXt2YXIgZSxmO3JldHVybiBkfHwoZj1qYltiXSxqYltiXT1l LGU9bnVsbCE9YyhhLGIsZCk/Yi50b0xvd2VyQ2FzZSgpOm51bGwsamJbYl09Ziks ZX19KTt2YXIga2I9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQv aSxsYj0vXig/OmF8YXJlYSkkL2k7ZmEuZm4uZXh0ZW5kKHtwcm9wOmZ1bmN0aW9u KGEsYil7cmV0dXJuIHhhKHRoaXMsZmEucHJvcCxhLGIsYXJndW1lbnRzLmxlbmd0 aD4xKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1 bmN0aW9uKCl7ZGVsZXRlIHRoaXNbZmEucHJvcEZpeFthXXx8YV19KX19KSxmYS5l eHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkLGUsZj1hLm5vZGVUeXBl O2lmKDMhPT1mJiY4IT09ZiYmMiE9PWYpcmV0dXJuIDE9PT1mJiZmYS5pc1hNTERv YyhhKXx8KGI9ZmEucHJvcEZpeFtiXXx8YixlPWZhLnByb3BIb29rc1tiXSksdm9p ZCAwIT09Yz9lJiYic2V0ImluIGUmJnZvaWQgMCE9PShkPWUuc2V0KGEsYyxiKSk/ ZDphW2JdPWM6ZSYmImdldCJpbiBlJiZudWxsIT09KGQ9ZS5nZXQoYSxiKSk/ZDph W2JdfSxwcm9wSG9va3M6e3RhYkluZGV4OntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9 ZmEuZmluZC5hdHRyKGEsInRhYmluZGV4Iik7cmV0dXJuIGI/cGFyc2VJbnQoYiwx MCk6a2IudGVzdChhLm5vZGVOYW1lKXx8bGIudGVzdChhLm5vZGVOYW1lKSYmYS5o cmVmPzA6LTF9fX0scHJvcEZpeDp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNs YXNzTmFtZSJ9fSksZGEub3B0U2VsZWN0ZWR8fChmYS5wcm9wSG9va3Muc2VsZWN0 ZWQ9e2dldDpmdW5jdGlvbihhKXt2YXIgYj1hLnBhcmVudE5vZGU7cmV0dXJuIGIm JmIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsbnVsbH0s c2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWEucGFyZW50Tm9kZTtiJiYoYi5zZWxlY3Rl ZEluZGV4LGIucGFyZW50Tm9kZSYmYi5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgp fX0pLGZhLmVhY2goWyJ0YWJJbmRleCIsInJlYWRPbmx5IiwibWF4TGVuZ3RoIiwi Y2VsbFNwYWNpbmciLCJjZWxsUGFkZGluZyIsInJvd1NwYW4iLCJjb2xTcGFuIiwi dXNlTWFwIiwiZnJhbWVCb3JkZXIiLCJjb250ZW50RWRpdGFibGUiXSxmdW5jdGlv bigpe2ZhLnByb3BGaXhbdGhpcy50b0xvd2VyQ2FzZSgpXT10aGlzfSk7dmFyIG1i PS9bXHRcclxuXGZdL2c7ZmEuZm4uZXh0ZW5kKHthZGRDbGFzczpmdW5jdGlvbihh KXt2YXIgYixjLGQsZSxmLGcsaCxpPTA7aWYoZmEuaXNGdW5jdGlvbihhKSlyZXR1 cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe2ZhKHRoaXMpLmFkZENsYXNzKGEuY2Fs bCh0aGlzLGIsTyh0aGlzKSkpfSk7aWYoInN0cmluZyI9PXR5cGVvZiBhJiZhKXti PWEubWF0Y2godmEpfHxbXTt3aGlsZShjPXRoaXNbaSsrXSlpZihlPU8oYyksZD0x PT09Yy5ub2RlVHlwZSYmKCIgIitlKyIgIikucmVwbGFjZShtYiwiICIpKXtnPTA7 d2hpbGUoZj1iW2crK10pZC5pbmRleE9mKCIgIitmKyIgIik8MCYmKGQrPWYrIiAi KTtoPWZhLnRyaW0oZCksZSE9PWgmJmMuc2V0QXR0cmlidXRlKCJjbGFzcyIsaCl9 fXJldHVybiB0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbihhKXt2YXIgYixjLGQs ZSxmLGcsaCxpPTA7aWYoZmEuaXNGdW5jdGlvbihhKSlyZXR1cm4gdGhpcy5lYWNo KGZ1bmN0aW9uKGIpe2ZhKHRoaXMpLnJlbW92ZUNsYXNzKGEuY2FsbCh0aGlzLGIs Tyh0aGlzKSkpfSk7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuYXR0 cigiY2xhc3MiLCIiKTtpZigic3RyaW5nIj09dHlwZW9mIGEmJmEpe2I9YS5tYXRj aCh2YSl8fFtdO3doaWxlKGM9dGhpc1tpKytdKWlmKGU9TyhjKSxkPTE9PT1jLm5v ZGVUeXBlJiYoIiAiK2UrIiAiKS5yZXBsYWNlKG1iLCIgIikpe2c9MDt3aGlsZShm PWJbZysrXSl3aGlsZShkLmluZGV4T2YoIiAiK2YrIiAiKT4tMSlkPWQucmVwbGFj ZSgiICIrZisiICIsIiAiKTtoPWZhLnRyaW0oZCksZSE9PWgmJmMuc2V0QXR0cmli dXRlKCJjbGFzcyIsaCl9fXJldHVybiB0aGlzfSx0b2dnbGVDbGFzczpmdW5jdGlv bihhLGIpe3ZhciBjPXR5cGVvZiBhO3JldHVybiJib29sZWFuIj09dHlwZW9mIGIm JiJzdHJpbmciPT09Yz9iP3RoaXMuYWRkQ2xhc3MoYSk6dGhpcy5yZW1vdmVDbGFz cyhhKTpmYS5pc0Z1bmN0aW9uKGEpP3RoaXMuZWFjaChmdW5jdGlvbihjKXtmYSh0 aGlzKS50b2dnbGVDbGFzcyhhLmNhbGwodGhpcyxjLE8odGhpcyksYiksYil9KTp0 aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYixkLGUsZjtpZigic3RyaW5nIj09PWMp e2Q9MCxlPWZhKHRoaXMpLGY9YS5tYXRjaCh2YSl8fFtdO3doaWxlKGI9ZltkKytd KWUuaGFzQ2xhc3MoYik/ZS5yZW1vdmVDbGFzcyhiKTplLmFkZENsYXNzKGIpfWVs c2Ugdm9pZCAwIT09YSYmImJvb2xlYW4iIT09Y3x8KGI9Tyh0aGlzKSxiJiZ6YS5z ZXQodGhpcywiX19jbGFzc05hbWVfXyIsYiksdGhpcy5zZXRBdHRyaWJ1dGUmJnRo aXMuc2V0QXR0cmlidXRlKCJjbGFzcyIsYnx8YT09PSExPyIiOnphLmdldCh0aGlz LCJfX2NsYXNzTmFtZV9fIil8fCIiKSl9KX0saGFzQ2xhc3M6ZnVuY3Rpb24oYSl7 dmFyIGIsYyxkPTA7Yj0iICIrYSsiICI7d2hpbGUoYz10aGlzW2QrK10paWYoMT09 PWMubm9kZVR5cGUmJigiICIrTyhjKSsiICIpLnJlcGxhY2UobWIsIiAiKS5pbmRl eE9mKGIpPi0xKXJldHVybiEwO3JldHVybiExfX0pO3ZhciBuYj0vXHIvZyxvYj0v W1x4MjBcdFxyXG5cZl0rL2c7ZmEuZm4uZXh0ZW5kKHt2YWw6ZnVuY3Rpb24oYSl7 dmFyIGIsYyxkLGU9dGhpc1swXTt7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4g ZD1mYS5pc0Z1bmN0aW9uKGEpLHRoaXMuZWFjaChmdW5jdGlvbihjKXt2YXIgZTsx PT09dGhpcy5ub2RlVHlwZSYmKGU9ZD9hLmNhbGwodGhpcyxjLGZhKHRoaXMpLnZh bCgpKTphLG51bGw9PWU/ZT0iIjoibnVtYmVyIj09dHlwZW9mIGU/ZSs9IiI6ZmEu aXNBcnJheShlKSYmKGU9ZmEubWFwKGUsZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9 PWE/IiI6YSsiIn0pKSxiPWZhLnZhbEhvb2tzW3RoaXMudHlwZV18fGZhLnZhbEhv b2tzW3RoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0sYiYmInNldCJpbiBiJiZ2 b2lkIDAhPT1iLnNldCh0aGlzLGUsInZhbHVlIil8fCh0aGlzLnZhbHVlPWUpKX0p O2lmKGUpcmV0dXJuIGI9ZmEudmFsSG9va3NbZS50eXBlXXx8ZmEudmFsSG9va3Nb ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSxiJiYiZ2V0ImluIGImJnZvaWQgMCE9 PShjPWIuZ2V0KGUsInZhbHVlIikpP2M6KGM9ZS52YWx1ZSwic3RyaW5nIj09dHlw ZW9mIGM/Yy5yZXBsYWNlKG5iLCIiKTpudWxsPT1jPyIiOmMpfX19KSxmYS5leHRl bmQoe3ZhbEhvb2tzOntvcHRpb246e2dldDpmdW5jdGlvbihhKXt2YXIgYj1mYS5m aW5kLmF0dHIoYSwidmFsdWUiKTtyZXR1cm4gbnVsbCE9Yj9iOmZhLnRyaW0oZmEu dGV4dChhKSkucmVwbGFjZShvYiwiICIpfX0sc2VsZWN0OntnZXQ6ZnVuY3Rpb24o YSl7Zm9yKHZhciBiLGMsZD1hLm9wdGlvbnMsZT1hLnNlbGVjdGVkSW5kZXgsZj0i c2VsZWN0LW9uZSI9PT1hLnR5cGV8fGU8MCxnPWY/bnVsbDpbXSxoPWY/ZSsxOmQu bGVuZ3RoLGk9ZTwwP2g6Zj9lOjA7aTxoO2krKylpZihjPWRbaV0sKGMuc2VsZWN0 ZWR8fGk9PT1lKSYmKGRhLm9wdERpc2FibGVkPyFjLmRpc2FibGVkOm51bGw9PT1j LmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKSkmJighYy5wYXJlbnROb2RlLmRpc2Fi bGVkfHwhZmEubm9kZU5hbWUoYy5wYXJlbnROb2RlLCJvcHRncm91cCIpKSl7aWYo Yj1mYShjKS52YWwoKSxmKXJldHVybiBiO2cucHVzaChiKX1yZXR1cm4gZ30sc2V0 OmZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPWEub3B0aW9ucyxmPWZhLm1ha2VBcnJh eShiKSxnPWUubGVuZ3RoO3doaWxlKGctLSlkPWVbZ10sKGQuc2VsZWN0ZWQ9ZmEu aW5BcnJheShmYS52YWxIb29rcy5vcHRpb24uZ2V0KGQpLGYpPi0xKSYmKGM9ITAp O3JldHVybiBjfHwoYS5zZWxlY3RlZEluZGV4PS0xKSxmfX19fSksZmEuZWFjaChb InJhZGlvIiwiY2hlY2tib3giXSxmdW5jdGlvbigpe2ZhLnZhbEhvb2tzW3RoaXNd PXtzZXQ6ZnVuY3Rpb24oYSxiKXtpZihmYS5pc0FycmF5KGIpKXJldHVybiBhLmNo ZWNrZWQ9ZmEuaW5BcnJheShmYShhKS52YWwoKSxiKT4tMX19LGRhLmNoZWNrT258 fChmYS52YWxIb29rc1t0aGlzXS5nZXQ9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9 PT1hLmdldEF0dHJpYnV0ZSgidmFsdWUiKT8ib24iOmEudmFsdWV9KX0pO3ZhciBw Yj0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC87ZmEuZXh0ZW5kKGZh LmV2ZW50LHt0cmlnZ2VyOmZ1bmN0aW9uKGIsYyxkLGUpe3ZhciBmLGcsaCxpLGos ayxsLG09W2R8fFhdLG49Y2EuY2FsbChiLCJ0eXBlIik/Yi50eXBlOmIsbz1jYS5j YWxsKGIsIm5hbWVzcGFjZSIpP2IubmFtZXNwYWNlLnNwbGl0KCIuIik6W107aWYo Zz1oPWQ9ZHx8WCwzIT09ZC5ub2RlVHlwZSYmOCE9PWQubm9kZVR5cGUmJiFwYi50 ZXN0KG4rZmEuZXZlbnQudHJpZ2dlcmVkKSYmKG4uaW5kZXhPZigiLiIpPi0xJiYo bz1uLnNwbGl0KCIuIiksbj1vLnNoaWZ0KCksby5zb3J0KCkpLGo9bi5pbmRleE9m KCI6Iik8MCYmIm9uIituLGI9YltmYS5leHBhbmRvXT9iOm5ldyBmYS5FdmVudChu LCJvYmplY3QiPT10eXBlb2YgYiYmYiksYi5pc1RyaWdnZXI9ZT8yOjMsYi5uYW1l c3BhY2U9by5qb2luKCIuIiksYi5ybmFtZXNwYWNlPWIubmFtZXNwYWNlP25ldyBS ZWdFeHAoIihefFxcLikiK28uam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQp Iik6bnVsbCxiLnJlc3VsdD12b2lkIDAsYi50YXJnZXR8fChiLnRhcmdldD1kKSxj PW51bGw9PWM/W2JdOmZhLm1ha2VBcnJheShjLFtiXSksbD1mYS5ldmVudC5zcGVj aWFsW25dfHx7fSxlfHwhbC50cmlnZ2VyfHxsLnRyaWdnZXIuYXBwbHkoZCxjKSE9 PSExKSl7aWYoIWUmJiFsLm5vQnViYmxlJiYhZmEuaXNXaW5kb3coZCkpe2Zvcihp PWwuZGVsZWdhdGVUeXBlfHxuLHBiLnRlc3QoaStuKXx8KGc9Zy5wYXJlbnROb2Rl KTtnO2c9Zy5wYXJlbnROb2RlKW0ucHVzaChnKSxoPWc7aD09PShkLm93bmVyRG9j dW1lbnR8fFgpJiZtLnB1c2goaC5kZWZhdWx0Vmlld3x8aC5wYXJlbnRXaW5kb3d8 fGEpfWY9MDt3aGlsZSgoZz1tW2YrK10pJiYhYi5pc1Byb3BhZ2F0aW9uU3RvcHBl ZCgpKWIudHlwZT1mPjE/aTpsLmJpbmRUeXBlfHxuLGs9KHphLmdldChnLCJldmVu dHMiKXx8e30pW2IudHlwZV0mJnphLmdldChnLCJoYW5kbGUiKSxrJiZrLmFwcGx5 KGcsYyksaz1qJiZnW2pdLGsmJmsuYXBwbHkmJnlhKGcpJiYoYi5yZXN1bHQ9ay5h cHBseShnLGMpLGIucmVzdWx0PT09ITEmJmIucHJldmVudERlZmF1bHQoKSk7cmV0 dXJuIGIudHlwZT1uLGV8fGIuaXNEZWZhdWx0UHJldmVudGVkKCl8fGwuX2RlZmF1 bHQmJmwuX2RlZmF1bHQuYXBwbHkobS5wb3AoKSxjKSE9PSExfHwheWEoZCl8fGom JmZhLmlzRnVuY3Rpb24oZFtuXSkmJiFmYS5pc1dpbmRvdyhkKSYmKGg9ZFtqXSxo JiYoZFtqXT1udWxsKSxmYS5ldmVudC50cmlnZ2VyZWQ9bixkW25dKCksZmEuZXZl bnQudHJpZ2dlcmVkPXZvaWQgMCxoJiYoZFtqXT1oKSksYi5yZXN1bHR9fSxzaW11 bGF0ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9ZmEuZXh0ZW5kKG5ldyBmYS5FdmVu dCxjLHt0eXBlOmEsaXNTaW11bGF0ZWQ6ITB9KTtmYS5ldmVudC50cmlnZ2VyKGQs bnVsbCxiKSxkLmlzRGVmYXVsdFByZXZlbnRlZCgpJiZjLnByZXZlbnREZWZhdWx0 KCl9fSksZmEuZm4uZXh0ZW5kKHt0cmlnZ2VyOmZ1bmN0aW9uKGEsYil7cmV0dXJu IHRoaXMuZWFjaChmdW5jdGlvbigpe2ZhLmV2ZW50LnRyaWdnZXIoYSxiLHRoaXMp fSl9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpc1swXTtp ZihjKXJldHVybiBmYS5ldmVudC50cmlnZ2VyKGEsYixjLCEwKX19KSxmYS5lYWNo KCJibHVyIGZvY3VzIGZvY3VzaW4gZm9jdXNvdXQgbG9hZCByZXNpemUgc2Nyb2xs IHVubG9hZCBjbGljayBkYmxjbGljayBtb3VzZWRvd24gbW91c2V1cCBtb3VzZW1v dmUgbW91c2VvdmVyIG1vdXNlb3V0IG1vdXNlZW50ZXIgbW91c2VsZWF2ZSBjaGFu Z2Ugc2VsZWN0IHN1Ym1pdCBrZXlkb3duIGtleXByZXNzIGtleXVwIGVycm9yIGNv bnRleHRtZW51Ii5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsYil7ZmEuZm5bYl09ZnVu Y3Rpb24oYSxjKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4wP3RoaXMub24oYixu dWxsLGEsYyk6dGhpcy50cmlnZ2VyKGIpfX0pLGZhLmZuLmV4dGVuZCh7aG92ZXI6 ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5tb3VzZWVudGVyKGEpLm1vdXNlbGVh dmUoYnx8YSl9fSksZGEuZm9jdXNpbj0ib25mb2N1c2luImluIGEsZGEuZm9jdXNp bnx8ZmEuZWFjaCh7Zm9jdXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0In0sZnVu Y3Rpb24oYSxiKXt2YXIgYz1mdW5jdGlvbihhKXtmYS5ldmVudC5zaW11bGF0ZShi LGEudGFyZ2V0LGZhLmV2ZW50LmZpeChhKSl9O2ZhLmV2ZW50LnNwZWNpYWxbYl09 e3NldHVwOmZ1bmN0aW9uKCl7dmFyIGQ9dGhpcy5vd25lckRvY3VtZW50fHx0aGlz LGU9emEuYWNjZXNzKGQsYik7ZXx8ZC5hZGRFdmVudExpc3RlbmVyKGEsYywhMCks emEuYWNjZXNzKGQsYiwoZXx8MCkrMSl9LHRlYXJkb3duOmZ1bmN0aW9uKCl7dmFy IGQ9dGhpcy5vd25lckRvY3VtZW50fHx0aGlzLGU9emEuYWNjZXNzKGQsYiktMTtl P3phLmFjY2VzcyhkLGIsZSk6KGQucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGMsITAp LHphLnJlbW92ZShkLGIpKX19fSk7dmFyIHFiPWEubG9jYXRpb24scmI9ZmEubm93 KCksc2I9L1w/LztmYS5wYXJzZUpTT049ZnVuY3Rpb24oYSl7cmV0dXJuIEpTT04u cGFyc2UoYSsiIil9LGZhLnBhcnNlWE1MPWZ1bmN0aW9uKGIpe3ZhciBjO2lmKCFi fHwic3RyaW5nIiE9dHlwZW9mIGIpcmV0dXJuIG51bGw7dHJ5e2M9KG5ldyBhLkRP TVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKGIsInRleHQveG1sIil9Y2F0Y2goZCl7 Yz12b2lkIDB9cmV0dXJuIGMmJiFjLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJz ZXJlcnJvciIpLmxlbmd0aHx8ZmEuZXJyb3IoIkludmFsaWQgWE1MOiAiK2IpLGN9 O3ZhciB0Yj0vIy4qJC8sdWI9LyhbPyZdKV89W14mXSovLHZiPS9eKC4qPyk6WyBc dF0qKFteXHJcbl0qKSQvZ20sd2I9L14oPzphYm91dHxhcHB8YXBwLXN0b3JhZ2V8 ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8seGI9L14oPzpHRVR8SEVB RCkkLyx5Yj0vXlwvXC8vLHpiPXt9LEFiPXt9LEJiPSIqLyIuY29uY2F0KCIqIiks Q2I9WC5jcmVhdGVFbGVtZW50KCJhIik7Q2IuaHJlZj1xYi5ocmVmLGZhLmV4dGVu ZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdz Ont1cmw6cWIuaHJlZix0eXBlOiJHRVQiLGlzTG9jYWw6d2IudGVzdChxYi5wcm90 b2NvbCksZ2xvYmFsOiEwLHByb2Nlc3NEYXRhOiEwLGFzeW5jOiEwLGNvbnRlbnRU eXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9 VVRGLTgiLGFjY2VwdHM6eyIqIjpCYix0ZXh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0 ZXh0L2h0bWwiLHhtbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsanNvbjoi YXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0In0sY29udGVudHM6e3ht bDovXGJ4bWxcYi8saHRtbDovXGJodG1sLyxqc29uOi9cYmpzb25cYi99LHJlc3Bv bnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQi LGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmlu ZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjpmYS5wYXJzZUpTT04sInRleHQg eG1sIjpmYS5wYXJzZVhNTH0sZmxhdE9wdGlvbnM6e3VybDohMCxjb250ZXh0OiEw fX0sYWpheFNldHVwOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGI/UihSKGEsZmEuYWph eFNldHRpbmdzKSxiKTpSKGZhLmFqYXhTZXR0aW5ncyxhKX0sYWpheFByZWZpbHRl cjpQKHpiKSxhamF4VHJhbnNwb3J0OlAoQWIpLGFqYXg6ZnVuY3Rpb24oYixjKXtm dW5jdGlvbiBkKGIsYyxkLGgpe3ZhciBqLGwscyx0LHYseD1jOzIhPT11JiYodT0y LGkmJmEuY2xlYXJUaW1lb3V0KGkpLGU9dm9pZCAwLGc9aHx8IiIsdy5yZWFkeVN0 YXRlPWI+MD80OjAsaj1iPj0yMDAmJmI8MzAwfHwzMDQ9PT1iLGQmJih0PVMobSx3 LGQpKSx0PVQobSx0LHcsaiksaj8obS5pZk1vZGlmaWVkJiYodj13LmdldFJlc3Bv bnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIiksdiYmKGZhLmxhc3RNb2RpZmllZFtm XT12KSx2PXcuZ2V0UmVzcG9uc2VIZWFkZXIoImV0YWciKSx2JiYoZmEuZXRhZ1tm XT12KSksMjA0PT09Ynx8IkhFQUQiPT09bS50eXBlP3g9Im5vY29udGVudCI6MzA0 PT09Yj94PSJub3Rtb2RpZmllZCI6KHg9dC5zdGF0ZSxsPXQuZGF0YSxzPXQuZXJy b3Isaj0hcykpOihzPXgsIWImJnh8fCh4PSJlcnJvciIsYjwwJiYoYj0wKSkpLHcu c3RhdHVzPWIsdy5zdGF0dXNUZXh0PShjfHx4KSsiIixqP3AucmVzb2x2ZVdpdGgo bixbbCx4LHddKTpwLnJlamVjdFdpdGgobixbdyx4LHNdKSx3LnN0YXR1c0NvZGUo cikscj12b2lkIDAsayYmby50cmlnZ2VyKGo/ImFqYXhTdWNjZXNzIjoiYWpheEVy cm9yIixbdyxtLGo/bDpzXSkscS5maXJlV2l0aChuLFt3LHhdKSxrJiYoby50cmln Z2VyKCJhamF4Q29tcGxldGUiLFt3LG1dKSwtLWZhLmFjdGl2ZXx8ZmEuZXZlbnQu dHJpZ2dlcigiYWpheFN0b3AiKSkpfSJvYmplY3QiPT10eXBlb2YgYiYmKGM9Yixi PXZvaWQgMCksYz1jfHx7fTt2YXIgZSxmLGcsaCxpLGosayxsLG09ZmEuYWpheFNl dHVwKHt9LGMpLG49bS5jb250ZXh0fHxtLG89bS5jb250ZXh0JiYobi5ub2RlVHlw ZXx8bi5qcXVlcnkpP2ZhKG4pOmZhLmV2ZW50LHA9ZmEuRGVmZXJyZWQoKSxxPWZh LkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxyPW0uc3RhdHVzQ29kZXx8e30scz17 fSx0PXt9LHU9MCx2PSJjYW5jZWxlZCIsdz17cmVhZHlTdGF0ZTowLGdldFJlc3Bv bnNlSGVhZGVyOmZ1bmN0aW9uKGEpe3ZhciBiO2lmKDI9PT11KXtpZighaCl7aD17 fTt3aGlsZShiPXZiLmV4ZWMoZykpaFtiWzFdLnRvTG93ZXJDYXNlKCldPWJbMl19 Yj1oW2EudG9Mb3dlckNhc2UoKV19cmV0dXJuIG51bGw9PWI/bnVsbDpifSxnZXRB bGxSZXNwb25zZUhlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXU/ZzpudWxs fSxzZXRSZXF1ZXN0SGVhZGVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9YS50b0xvd2Vy Q2FzZSgpO3JldHVybiB1fHwoYT10W2NdPXRbY118fGEsc1thXT1iKSx0aGlzfSxv dmVycmlkZU1pbWVUeXBlOmZ1bmN0aW9uKGEpe3JldHVybiB1fHwobS5taW1lVHlw ZT1hKSx0aGlzfSxzdGF0dXNDb2RlOmZ1bmN0aW9uKGEpe3ZhciBiO2lmKGEpaWYo dTwyKWZvcihiIGluIGEpcltiXT1bcltiXSxhW2JdXTtlbHNlIHcuYWx3YXlzKGFb dy5zdGF0dXNdKTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oYSl7dmFyIGI9 YXx8djtyZXR1cm4gZSYmZS5hYm9ydChiKSxkKDAsYiksdGhpc319O2lmKHAucHJv bWlzZSh3KS5jb21wbGV0ZT1xLmFkZCx3LnN1Y2Nlc3M9dy5kb25lLHcuZXJyb3I9 dy5mYWlsLG0udXJsPSgoYnx8bS51cmx8fHFiLmhyZWYpKyIiKS5yZXBsYWNlKHRi LCIiKS5yZXBsYWNlKHliLHFiLnByb3RvY29sKyIvLyIpLG0udHlwZT1jLm1ldGhv ZHx8Yy50eXBlfHxtLm1ldGhvZHx8bS50eXBlLG0uZGF0YVR5cGVzPWZhLnRyaW0o bS5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKHZhKXx8WyIiXSxu dWxsPT1tLmNyb3NzRG9tYWluKXtqPVguY3JlYXRlRWxlbWVudCgiYSIpO3RyeXtq LmhyZWY9bS51cmwsai5ocmVmPWouaHJlZixtLmNyb3NzRG9tYWluPUNiLnByb3Rv Y29sKyIvLyIrQ2IuaG9zdCE9ai5wcm90b2NvbCsiLy8iK2ouaG9zdH1jYXRjaCh4 KXttLmNyb3NzRG9tYWluPSEwfX1pZihtLmRhdGEmJm0ucHJvY2Vzc0RhdGEmJiJz dHJpbmciIT10eXBlb2YgbS5kYXRhJiYobS5kYXRhPWZhLnBhcmFtKG0uZGF0YSxt LnRyYWRpdGlvbmFsKSksUSh6YixtLGMsdyksMj09PXUpcmV0dXJuIHc7az1mYS5l dmVudCYmbS5nbG9iYWwsayYmMD09PWZhLmFjdGl2ZSsrJiZmYS5ldmVudC50cmln Z2VyKCJhamF4U3RhcnQiKSxtLnR5cGU9bS50eXBlLnRvVXBwZXJDYXNlKCksbS5o YXNDb250ZW50PSF4Yi50ZXN0KG0udHlwZSksZj1tLnVybCxtLmhhc0NvbnRlbnR8 fChtLmRhdGEmJihmPW0udXJsKz0oc2IudGVzdChmKT8iJiI6Ij8iKSttLmRhdGEs ZGVsZXRlIG0uZGF0YSksbS5jYWNoZT09PSExJiYobS51cmw9dWIudGVzdChmKT9m LnJlcGxhY2UodWIsIiQxXz0iK3JiKyspOmYrKHNiLnRlc3QoZik/IiYiOiI/Iikr Il89IityYisrKSksbS5pZk1vZGlmaWVkJiYoZmEubGFzdE1vZGlmaWVkW2ZdJiZ3 LnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixmYS5sYXN0TW9k aWZpZWRbZl0pLGZhLmV0YWdbZl0mJncuc2V0UmVxdWVzdEhlYWRlcigiSWYtTm9u ZS1NYXRjaCIsZmEuZXRhZ1tmXSkpLChtLmRhdGEmJm0uaGFzQ29udGVudCYmbS5j b250ZW50VHlwZSE9PSExfHxjLmNvbnRlbnRUeXBlKSYmdy5zZXRSZXF1ZXN0SGVh ZGVyKCJDb250ZW50LVR5cGUiLG0uY29udGVudFR5cGUpLHcuc2V0UmVxdWVzdEhl YWRlcigiQWNjZXB0IixtLmRhdGFUeXBlc1swXSYmbS5hY2NlcHRzW20uZGF0YVR5 cGVzWzBdXT9tLmFjY2VwdHNbbS5kYXRhVHlwZXNbMF1dKygiKiIhPT1tLmRhdGFU eXBlc1swXT8iLCAiK0JiKyI7IHE9MC4wMSI6IiIpOm0uYWNjZXB0c1siKiJdKTtm b3IobCBpbiBtLmhlYWRlcnMpdy5zZXRSZXF1ZXN0SGVhZGVyKGwsbS5oZWFkZXJz W2xdKTtpZihtLmJlZm9yZVNlbmQmJihtLmJlZm9yZVNlbmQuY2FsbChuLHcsbSk9 PT0hMXx8Mj09PXUpKXJldHVybiB3LmFib3J0KCk7dj0iYWJvcnQiO2ZvcihsIGlu e3N1Y2Nlc3M6MSxlcnJvcjoxLGNvbXBsZXRlOjF9KXdbbF0obVtsXSk7aWYoZT1R KEFiLG0sYyx3KSl7aWYody5yZWFkeVN0YXRlPTEsayYmby50cmlnZ2VyKCJhamF4 U2VuZCIsW3csbV0pLDI9PT11KXJldHVybiB3O20uYXN5bmMmJm0udGltZW91dD4w JiYoaT1hLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt3LmFib3J0KCJ0aW1lb3V0Iil9 LG0udGltZW91dCkpO3RyeXt1PTEsZS5zZW5kKHMsZCl9Y2F0Y2goeCl7aWYoISh1 PDIpKXRocm93IHg7ZCgtMSx4KX19ZWxzZSBkKC0xLCJObyBUcmFuc3BvcnQiKTty ZXR1cm4gd30sZ2V0SlNPTjpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGZhLmdldChh LGIsYywianNvbiIpfSxnZXRTY3JpcHQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZmEu Z2V0KGEsdm9pZCAwLGIsInNjcmlwdCIpfX0pLGZhLmVhY2goWyJnZXQiLCJwb3N0 Il0sZnVuY3Rpb24oYSxiKXtmYVtiXT1mdW5jdGlvbihhLGMsZCxlKXtyZXR1cm4g ZmEuaXNGdW5jdGlvbihjKSYmKGU9ZXx8ZCxkPWMsYz12b2lkIDApLGZhLmFqYXgo ZmEuZXh0ZW5kKHt1cmw6YSx0eXBlOmIsZGF0YVR5cGU6ZSxkYXRhOmMsc3VjY2Vz czpkfSxmYS5pc1BsYWluT2JqZWN0KGEpJiZhKSl9fSksZmEuX2V2YWxVcmw9ZnVu Y3Rpb24oYSl7cmV0dXJuIGZhLmFqYXgoe3VybDphLHR5cGU6IkdFVCIsZGF0YVR5 cGU6InNjcmlwdCIsYXN5bmM6ITEsZ2xvYmFsOiExLCJ0aHJvd3MiOiEwfSl9LGZh LmZuLmV4dGVuZCh7d3JhcEFsbDpmdW5jdGlvbihhKXt2YXIgYjtyZXR1cm4gZmEu aXNGdW5jdGlvbihhKT90aGlzLmVhY2goZnVuY3Rpb24oYil7ZmEodGhpcykud3Jh cEFsbChhLmNhbGwodGhpcyxiKSl9KToodGhpc1swXSYmKGI9ZmEoYSx0aGlzWzBd Lm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKSx0aGlzWzBdLnBhcmVudE5v ZGUmJmIuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLGIubWFwKGZ1bmN0aW9uKCl7dmFy IGE9dGhpczt3aGlsZShhLmZpcnN0RWxlbWVudENoaWxkKWE9YS5maXJzdEVsZW1l bnRDaGlsZDtyZXR1cm4gYX0pLmFwcGVuZCh0aGlzKSksdGhpcyl9LHdyYXBJbm5l cjpmdW5jdGlvbihhKXtyZXR1cm4gZmEuaXNGdW5jdGlvbihhKT90aGlzLmVhY2go ZnVuY3Rpb24oYil7ZmEodGhpcykud3JhcElubmVyKGEuY2FsbCh0aGlzLGIpKX0p OnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPWZhKHRoaXMpLGM9Yi5jb250ZW50 cygpO2MubGVuZ3RoP2Mud3JhcEFsbChhKTpiLmFwcGVuZChhKX0pfSx3cmFwOmZ1 bmN0aW9uKGEpe3ZhciBiPWZhLmlzRnVuY3Rpb24oYSk7cmV0dXJuIHRoaXMuZWFj aChmdW5jdGlvbihjKXtmYSh0aGlzKS53cmFwQWxsKGI/YS5jYWxsKHRoaXMsYyk6 YSl9KX0sdW53cmFwOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50KCkuZWFj aChmdW5jdGlvbigpe2ZhLm5vZGVOYW1lKHRoaXMsImJvZHkiKXx8ZmEodGhpcyku cmVwbGFjZVdpdGgodGhpcy5jaGlsZE5vZGVzKX0pLmVuZCgpfX0pLGZhLmV4cHIu ZmlsdGVycy5oaWRkZW49ZnVuY3Rpb24oYSl7cmV0dXJuIWZhLmV4cHIuZmlsdGVy cy52aXNpYmxlKGEpfSxmYS5leHByLmZpbHRlcnMudmlzaWJsZT1mdW5jdGlvbihh KXtyZXR1cm4gYS5vZmZzZXRXaWR0aD4wfHxhLm9mZnNldEhlaWdodD4wfHxhLmdl dENsaWVudFJlY3RzKCkubGVuZ3RoPjB9O3ZhciBEYj0vJTIwL2csRWI9L1xbXF0k LyxGYj0vXHI/XG4vZyxHYj0vXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8 ZmlsZSkkL2ksSGI9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9p O2ZhLnBhcmFtPWZ1bmN0aW9uKGEsYil7dmFyIGMsZD1bXSxlPWZ1bmN0aW9uKGEs Yil7Yj1mYS5pc0Z1bmN0aW9uKGIpP2IoKTpudWxsPT1iPyIiOmIsZFtkLmxlbmd0 aF09ZW5jb2RlVVJJQ29tcG9uZW50KGEpKyI9IitlbmNvZGVVUklDb21wb25lbnQo Yil9O2lmKHZvaWQgMD09PWImJihiPWZhLmFqYXhTZXR0aW5ncyYmZmEuYWpheFNl dHRpbmdzLnRyYWRpdGlvbmFsKSxmYS5pc0FycmF5KGEpfHxhLmpxdWVyeSYmIWZh LmlzUGxhaW5PYmplY3QoYSkpZmEuZWFjaChhLGZ1bmN0aW9uKCl7ZSh0aGlzLm5h bWUsdGhpcy52YWx1ZSl9KTtlbHNlIGZvcihjIGluIGEpVShjLGFbY10sYixlKTty ZXR1cm4gZC5qb2luKCImIikucmVwbGFjZShEYiwiKyIpfSxmYS5mbi5leHRlbmQo e3NlcmlhbGl6ZTpmdW5jdGlvbigpe3JldHVybiBmYS5wYXJhbSh0aGlzLnNlcmlh bGl6ZUFycmF5KCkpfSxzZXJpYWxpemVBcnJheTpmdW5jdGlvbigpe3JldHVybiB0 aGlzLm1hcChmdW5jdGlvbigpe3ZhciBhPWZhLnByb3AodGhpcywiZWxlbWVudHMi KTtyZXR1cm4gYT9mYS5tYWtlQXJyYXkoYSk6dGhpc30pLmZpbHRlcihmdW5jdGlv bigpe3ZhciBhPXRoaXMudHlwZTtyZXR1cm4gdGhpcy5uYW1lJiYhZmEodGhpcyku aXMoIjpkaXNhYmxlZCIpJiZIYi50ZXN0KHRoaXMubm9kZU5hbWUpJiYhR2IudGVz dChhKSYmKHRoaXMuY2hlY2tlZHx8IUhhLnRlc3QoYSkpfSkubWFwKGZ1bmN0aW9u KGEsYil7dmFyIGM9ZmEodGhpcykudmFsKCk7cmV0dXJuIG51bGw9PWM/bnVsbDpm YS5pc0FycmF5KGMpP2ZhLm1hcChjLGZ1bmN0aW9uKGEpe3JldHVybntuYW1lOmIu bmFtZSx2YWx1ZTphLnJlcGxhY2UoRmIsIlxyXG4iKX19KTp7bmFtZTpiLm5hbWUs dmFsdWU6Yy5yZXBsYWNlKEZiLCJcclxuIil9fSkuZ2V0KCl9fSksZmEuYWpheFNl dHRpbmdzLnhocj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IGEuWE1MSHR0cFJl cXVlc3R9Y2F0Y2goYil7fX07dmFyIEliPXswOjIwMCwxMjIzOjIwNH0sSmI9ZmEu YWpheFNldHRpbmdzLnhocigpO2RhLmNvcnM9ISFKYiYmIndpdGhDcmVkZW50aWFs cyJpbiBKYixkYS5hamF4PUpiPSEhSmIsZmEuYWpheFRyYW5zcG9ydChmdW5jdGlv bihiKXt2YXIgYyxkO2lmKGRhLmNvcnN8fEpiJiYhYi5jcm9zc0RvbWFpbilyZXR1 cm57c2VuZDpmdW5jdGlvbihlLGYpe3ZhciBnLGg9Yi54aHIoKTtpZihoLm9wZW4o Yi50eXBlLGIudXJsLGIuYXN5bmMsYi51c2VybmFtZSxiLnBhc3N3b3JkKSxiLnho ckZpZWxkcylmb3IoZyBpbiBiLnhockZpZWxkcyloW2ddPWIueGhyRmllbGRzW2dd O2IubWltZVR5cGUmJmgub3ZlcnJpZGVNaW1lVHlwZSYmaC5vdmVycmlkZU1pbWVU eXBlKGIubWltZVR5cGUpLGIuY3Jvc3NEb21haW58fGVbIlgtUmVxdWVzdGVkLVdp dGgiXXx8KGVbIlgtUmVxdWVzdGVkLVdpdGgiXT0iWE1MSHR0cFJlcXVlc3QiKTtm b3IoZyBpbiBlKWguc2V0UmVxdWVzdEhlYWRlcihnLGVbZ10pO2M9ZnVuY3Rpb24o YSl7cmV0dXJuIGZ1bmN0aW9uKCl7YyYmKGM9ZD1oLm9ubG9hZD1oLm9uZXJyb3I9 aC5vbmFib3J0PWgub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsImFib3J0Ij09PWE/ aC5hYm9ydCgpOiJlcnJvciI9PT1hPyJudW1iZXIiIT10eXBlb2YgaC5zdGF0dXM/ ZigwLCJlcnJvciIpOmYoaC5zdGF0dXMsaC5zdGF0dXNUZXh0KTpmKEliW2guc3Rh dHVzXXx8aC5zdGF0dXMsaC5zdGF0dXNUZXh0LCJ0ZXh0IiE9PShoLnJlc3BvbnNl VHlwZXx8InRleHQiKXx8InN0cmluZyIhPXR5cGVvZiBoLnJlc3BvbnNlVGV4dD97 YmluYXJ5OmgucmVzcG9uc2V9Ont0ZXh0OmgucmVzcG9uc2VUZXh0fSxoLmdldEFs bFJlc3BvbnNlSGVhZGVycygpKSl9fSxoLm9ubG9hZD1jKCksZD1oLm9uZXJyb3I9 YygiZXJyb3IiKSx2b2lkIDAhPT1oLm9uYWJvcnQ/aC5vbmFib3J0PWQ6aC5vbnJl YWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT09aC5yZWFkeVN0YXRlJiZhLnNl dFRpbWVvdXQoZnVuY3Rpb24oKXtjJiZkKCl9KX0sYz1jKCJhYm9ydCIpO3RyeXto LnNlbmQoYi5oYXNDb250ZW50JiZiLmRhdGF8fG51bGwpfWNhdGNoKGkpe2lmKGMp dGhyb3cgaX19LGFib3J0OmZ1bmN0aW9uKCl7YyYmYygpfX19KSxmYS5hamF4U2V0 dXAoe2FjY2VwdHM6e3NjcmlwdDoidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlv bi9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9lY21hc2NyaXB0LCBhcHBsaWNhdGlv bi94LWVjbWFzY3JpcHQifSxjb250ZW50czp7c2NyaXB0Oi9cYig/OmphdmF8ZWNt YSlzY3JpcHRcYi99LGNvbnZlcnRlcnM6eyJ0ZXh0IHNjcmlwdCI6ZnVuY3Rpb24o YSl7cmV0dXJuIGZhLmdsb2JhbEV2YWwoYSksYX19fSksZmEuYWpheFByZWZpbHRl cigic2NyaXB0IixmdW5jdGlvbihhKXt2b2lkIDA9PT1hLmNhY2hlJiYoYS5jYWNo ZT0hMSksYS5jcm9zc0RvbWFpbiYmKGEudHlwZT0iR0VUIil9KSxmYS5hamF4VHJh bnNwb3J0KCJzY3JpcHQiLGZ1bmN0aW9uKGEpe2lmKGEuY3Jvc3NEb21haW4pe3Zh ciBiLGM7cmV0dXJue3NlbmQ6ZnVuY3Rpb24oZCxlKXtiPWZhKCI8c2NyaXB0PiIp LnByb3Aoe2NoYXJzZXQ6YS5zY3JpcHRDaGFyc2V0LHNyYzphLnVybH0pLm9uKCJs b2FkIGVycm9yIixjPWZ1bmN0aW9uKGEpe2IucmVtb3ZlKCksYz1udWxsLGEmJmUo ImVycm9yIj09PWEudHlwZT80MDQ6MjAwLGEudHlwZSl9KSxYLmhlYWQuYXBwZW5k Q2hpbGQoYlswXSl9LGFib3J0OmZ1bmN0aW9uKCl7YyYmYygpfX19fSk7dmFyIEti PVtdLExiPS8oPSlcPyg/PSZ8JCl8XD9cPy87ZmEuYWpheFNldHVwKHtqc29ucDoi Y2FsbGJhY2siLGpzb25wQ2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgYT1LYi5wb3Ao KXx8ZmEuZXhwYW5kbysiXyIrcmIrKztyZXR1cm4gdGhpc1thXT0hMCxhfX0pLGZh LmFqYXhQcmVmaWx0ZXIoImpzb24ganNvbnAiLGZ1bmN0aW9uKGIsYyxkKXt2YXIg ZSxmLGcsaD1iLmpzb25wIT09ITEmJihMYi50ZXN0KGIudXJsKT8idXJsIjoic3Ry aW5nIj09dHlwZW9mIGIuZGF0YSYmMD09PShiLmNvbnRlbnRUeXBlfHwiIikuaW5k ZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIikmJkxiLnRl c3QoYi5kYXRhKSYmImRhdGEiKTtpZihofHwianNvbnAiPT09Yi5kYXRhVHlwZXNb MF0pcmV0dXJuIGU9Yi5qc29ucENhbGxiYWNrPWZhLmlzRnVuY3Rpb24oYi5qc29u cENhbGxiYWNrKT9iLmpzb25wQ2FsbGJhY2soKTpiLmpzb25wQ2FsbGJhY2ssaD9i W2hdPWJbaF0ucmVwbGFjZShMYiwiJDEiK2UpOmIuanNvbnAhPT0hMSYmKGIudXJs Kz0oc2IudGVzdChiLnVybCk/IiYiOiI/IikrYi5qc29ucCsiPSIrZSksYi5jb252 ZXJ0ZXJzWyJzY3JpcHQganNvbiJdPWZ1bmN0aW9uKCl7cmV0dXJuIGd8fGZhLmVy cm9yKGUrIiB3YXMgbm90IGNhbGxlZCIpLGdbMF19LGIuZGF0YVR5cGVzWzBdPSJq c29uIixmPWFbZV0sYVtlXT1mdW5jdGlvbigpe2c9YXJndW1lbnRzfSxkLmFsd2F5 cyhmdW5jdGlvbigpe3ZvaWQgMD09PWY/ZmEoYSkucmVtb3ZlUHJvcChlKTphW2Vd PWYsYltlXSYmKGIuanNvbnBDYWxsYmFjaz1jLmpzb25wQ2FsbGJhY2ssS2IucHVz aChlKSksZyYmZmEuaXNGdW5jdGlvbihmKSYmZihnWzBdKSxnPWY9dm9pZCAwfSks InNjcmlwdCJ9KSxmYS5wYXJzZUhUTUw9ZnVuY3Rpb24oYSxiLGMpe2lmKCFhfHwi c3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIG51bGw7ImJvb2xlYW4iPT10eXBlb2Yg YiYmKGM9YixiPSExKSxiPWJ8fFg7dmFyIGQ9b2EuZXhlYyhhKSxlPSFjJiZbXTty ZXR1cm4gZD9bYi5jcmVhdGVFbGVtZW50KGRbMV0pXTooZD1tKFthXSxiLGUpLGUm JmUubGVuZ3RoJiZmYShlKS5yZW1vdmUoKSxmYS5tZXJnZShbXSxkLmNoaWxkTm9k ZXMpKX07dmFyIE1iPWZhLmZuLmxvYWQ7ZmEuZm4ubG9hZD1mdW5jdGlvbihhLGIs Yyl7aWYoInN0cmluZyIhPXR5cGVvZiBhJiZNYilyZXR1cm4gTWIuYXBwbHkodGhp cyxhcmd1bWVudHMpO3ZhciBkLGUsZixnPXRoaXMsaD1hLmluZGV4T2YoIiAiKTty ZXR1cm4gaD4tMSYmKGQ9ZmEudHJpbShhLnNsaWNlKGgpKSxhPWEuc2xpY2UoMCxo KSksZmEuaXNGdW5jdGlvbihiKT8oYz1iLGI9dm9pZCAwKTpiJiYib2JqZWN0Ij09 dHlwZW9mIGImJihlPSJQT1NUIiksZy5sZW5ndGg+MCYmZmEuYWpheCh7dXJsOmEs dHlwZTplfHwiR0VUIixkYXRhVHlwZToiaHRtbCIsZGF0YTpifSkuZG9uZShmdW5j dGlvbihhKXtmPWFyZ3VtZW50cyxnLmh0bWwoZD9mYSgiPGRpdj4iKS5hcHBlbmQo ZmEucGFyc2VIVE1MKGEpKS5maW5kKGQpOmEpfSkuYWx3YXlzKGMmJmZ1bmN0aW9u KGEsYil7Zy5lYWNoKGZ1bmN0aW9uKCl7Yy5hcHBseSh0aGlzLGZ8fFthLnJlc3Bv bnNlVGV4dCxiLGFdKX0pfSksdGhpc30sZmEuZWFjaChbImFqYXhTdGFydCIsImFq YXhTdG9wIiwiYWpheENvbXBsZXRlIiwiYWpheEVycm9yIiwiYWpheFN1Y2Nlc3Mi LCJhamF4U2VuZCJdLGZ1bmN0aW9uKGEsYil7ZmEuZm5bYl09ZnVuY3Rpb24oYSl7 cmV0dXJuIHRoaXMub24oYixhKX19KSxmYS5leHByLmZpbHRlcnMuYW5pbWF0ZWQ9 ZnVuY3Rpb24oYSl7cmV0dXJuIGZhLmdyZXAoZmEudGltZXJzLGZ1bmN0aW9uKGIp e3JldHVybiBhPT09Yi5lbGVtfSkubGVuZ3RofSxmYS5vZmZzZXQ9e3NldE9mZnNl dDpmdW5jdGlvbihhLGIsYyl7dmFyIGQsZSxmLGcsaCxpLGosaz1mYS5jc3MoYSwi cG9zaXRpb24iKSxsPWZhKGEpLG09e307InN0YXRpYyI9PT1rJiYoYS5zdHlsZS5w b3NpdGlvbj0icmVsYXRpdmUiKSxoPWwub2Zmc2V0KCksZj1mYS5jc3MoYSwidG9w IiksaT1mYS5jc3MoYSwibGVmdCIpLGo9KCJhYnNvbHV0ZSI9PT1rfHwiZml4ZWQi PT09aykmJihmK2kpLmluZGV4T2YoImF1dG8iKT4tMSxqPyhkPWwucG9zaXRpb24o KSxnPWQudG9wLGU9ZC5sZWZ0KTooZz1wYXJzZUZsb2F0KGYpfHwwLGU9cGFyc2VG bG9hdChpKXx8MCksZmEuaXNGdW5jdGlvbihiKSYmKGI9Yi5jYWxsKGEsYyxmYS5l eHRlbmQoe30saCkpKSxudWxsIT1iLnRvcCYmKG0udG9wPWIudG9wLWgudG9wK2cp LG51bGwhPWIubGVmdCYmKG0ubGVmdD1iLmxlZnQtaC5sZWZ0K2UpLCJ1c2luZyJp biBiP2IudXNpbmcuY2FsbChhLG0pOmwuY3NzKG0pfX0sZmEuZm4uZXh0ZW5kKHtv ZmZzZXQ6ZnVuY3Rpb24oYSl7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9p ZCAwPT09YT90aGlzOnRoaXMuZWFjaChmdW5jdGlvbihiKXtmYS5vZmZzZXQuc2V0 T2Zmc2V0KHRoaXMsYSxiKX0pO3ZhciBiLGMsZD10aGlzWzBdLGU9e3RvcDowLGxl ZnQ6MH0sZj1kJiZkLm93bmVyRG9jdW1lbnQ7aWYoZilyZXR1cm4gYj1mLmRvY3Vt ZW50RWxlbWVudCxmYS5jb250YWlucyhiLGQpPyhlPWQuZ2V0Qm91bmRpbmdDbGll bnRSZWN0KCksYz1WKGYpLHt0b3A6ZS50b3ArYy5wYWdlWU9mZnNldC1iLmNsaWVu dFRvcCxsZWZ0OmUubGVmdCtjLnBhZ2VYT2Zmc2V0LWIuY2xpZW50TGVmdH0pOmV9 LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7dmFyIGEsYixjPXRoaXNb MF0sZD17dG9wOjAsbGVmdDowfTtyZXR1cm4iZml4ZWQiPT09ZmEuY3NzKGMsInBv c2l0aW9uIik/Yj1jLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOihhPXRoaXMub2Zm c2V0UGFyZW50KCksYj10aGlzLm9mZnNldCgpLGZhLm5vZGVOYW1lKGFbMF0sImh0 bWwiKXx8KGQ9YS5vZmZzZXQoKSksZC50b3ArPWZhLmNzcyhhWzBdLCJib3JkZXJU b3BXaWR0aCIsITApLGQubGVmdCs9ZmEuY3NzKGFbMF0sImJvcmRlckxlZnRXaWR0 aCIsITApKSx7dG9wOmIudG9wLWQudG9wLWZhLmNzcyhjLCJtYXJnaW5Ub3AiLCEw KSxsZWZ0OmIubGVmdC1kLmxlZnQtZmEuY3NzKGMsIm1hcmdpbkxlZnQiLCEwKX19 fSxvZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rp b24oKXt2YXIgYT10aGlzLm9mZnNldFBhcmVudDt3aGlsZShhJiYic3RhdGljIj09 PWZhLmNzcyhhLCJwb3NpdGlvbiIpKWE9YS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGF8 fCRhfSl9fSksZmEuZWFjaCh7c2Nyb2xsTGVmdDoicGFnZVhPZmZzZXQiLHNjcm9s bFRvcDoicGFnZVlPZmZzZXQifSxmdW5jdGlvbihhLGIpe3ZhciBjPSJwYWdlWU9m ZnNldCI9PT1iO2ZhLmZuW2FdPWZ1bmN0aW9uKGQpe3JldHVybiB4YSh0aGlzLGZ1 bmN0aW9uKGEsZCxlKXt2YXIgZj1WKGEpO3JldHVybiB2b2lkIDA9PT1lP2Y/Zlti XTphW2RdOnZvaWQoZj9mLnNjcm9sbFRvKGM/Zi5wYWdlWE9mZnNldDplLGM/ZTpm LnBhZ2VZT2Zmc2V0KTphW2RdPWUpfSxhLGQsYXJndW1lbnRzLmxlbmd0aCl9fSks ZmEuZWFjaChbInRvcCIsImxlZnQiXSxmdW5jdGlvbihhLGIpe2ZhLmNzc0hvb2tz W2JdPUIoZGEucGl4ZWxQb3NpdGlvbixmdW5jdGlvbihhLGMpe2lmKGMpcmV0dXJu IGM9QShhLGIpLFhhLnRlc3QoYyk/ZmEoYSkucG9zaXRpb24oKVtiXSsicHgiOmN9 KX0pLGZhLmVhY2goe0hlaWdodDoiaGVpZ2h0IixXaWR0aDoid2lkdGgifSxmdW5j dGlvbihhLGIpe2ZhLmVhY2goe3BhZGRpbmc6ImlubmVyIithLGNvbnRlbnQ6Yiwi Ijoib3V0ZXIiK2F9LGZ1bmN0aW9uKGMsZCl7ZmEuZm5bZF09ZnVuY3Rpb24oZCxl KXt2YXIgZj1hcmd1bWVudHMubGVuZ3RoJiYoY3x8ImJvb2xlYW4iIT10eXBlb2Yg ZCksZz1jfHwoZD09PSEwfHxlPT09ITA/Im1hcmdpbiI6ImJvcmRlciIpO3JldHVy biB4YSh0aGlzLGZ1bmN0aW9uKGIsYyxkKXt2YXIgZTtyZXR1cm4gZmEuaXNXaW5k b3coYik/Yi5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrYV06OT09 PWIubm9kZVR5cGU/KGU9Yi5kb2N1bWVudEVsZW1lbnQsTWF0aC5tYXgoYi5ib2R5 WyJzY3JvbGwiK2FdLGVbInNjcm9sbCIrYV0sYi5ib2R5WyJvZmZzZXQiK2FdLGVb Im9mZnNldCIrYV0sZVsiY2xpZW50IithXSkpOnZvaWQgMD09PWQ/ZmEuY3NzKGIs YyxnKTpmYS5zdHlsZShiLGMsZCxnKX0sYixmP2Q6dm9pZCAwLGYsbnVsbCl9fSl9 KSxmYS5mbi5leHRlbmQoe2JpbmQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB0aGlz Lm9uKGEsbnVsbCxiLGMpfSx1bmJpbmQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhp cy5vZmYoYSxudWxsLGIpfSxkZWxlZ2F0ZTpmdW5jdGlvbihhLGIsYyxkKXtyZXR1 cm4gdGhpcy5vbihiLGEsYyxkKX0sdW5kZWxlZ2F0ZTpmdW5jdGlvbihhLGIsYyl7 cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMub2ZmKGEsIioqIik6dGhp cy5vZmYoYixhfHwiKioiLGMpfSxzaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu bGVuZ3RofX0pLGZhLmZuLmFuZFNlbGY9ZmEuZm4uYWRkQmFjaywiZnVuY3Rpb24i PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kJiZkZWZpbmUoImpxdWVyeSIsW10s ZnVuY3Rpb24oKXtyZXR1cm4gZmF9KTt2YXIgTmI9YS5qUXVlcnksT2I9YS4kO3Jl dHVybiBmYS5ub0NvbmZsaWN0PWZ1bmN0aW9uKGIpe3JldHVybiBhLiQ9PT1mYSYm KGEuJD1PYiksYiYmYS5qUXVlcnk9PT1mYSYmKGEualF1ZXJ5PU5iKSxmYX0sYnx8 KGEualF1ZXJ5PWEuJD1mYSksZmF9KTsNCjsvLyBqcy9saWIvanF1ZXJ5L2pxdWVy eS5lbWJlZFNXRi5qcwohZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihhLGIsYyl7dmFy IGQ9W10sZSxmLGc7Zm9yKGUgaW4gYSlmPWFbZV0sZz1zcHJpbnRmKGIsZSxmKSxk LnB1c2goZyk7cmV0dXJuIGQuam9pbihjKX12YXIgYz0iY2hyb21lImluIHdpbmRv dyxkPSFjJiYicGx1Z2lucyJpbiBuYXZpZ2F0b3ImJiJTaG9ja3dhdmUgRmxhc2gi aW4gbmF2aWdhdG9yLnBsdWdpbnMsZT0hMSxmPSJBY3RpdmVYT2JqZWN0ImluIHdp bmRvdyYmInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cuQWN0aXZlWE9iamVjdDtp ZighZCYmZil0cnl7ZT0iUGFuImluIG5ldyB3aW5kb3cuQWN0aXZlWE9iamVjdCgi U2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2giKX1jYXRjaChnKXt9YS5mbi5l bWJlZFNXRj1mdW5jdGlvbihjLGYsZyxoKXt2YXIgaT1hLmV4dGVuZCh7Zmxhc2h2 YXJzOnt9fSxoKSxqPXt3aWR0aDpjLGhlaWdodDpmfSxrPWEodGhpcyksbDtpZihh LmlzQXJyYXkoZykmJihnPWdbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmcubGVu Z3RoKV0pLCJzdHJpbmciPT09YS50eXBlKGcpKWw9ZztlbHNle2lmKCFhLmlzUGxh aW5PYmplY3QoZykpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcigid3JvbmcgdHlw ZSBvZiBzd2Zfc291cmNlOiAiK2EudHlwZShnKSk7Zm9yKGwgaW4gZylpLmZsYXNo dmFycy5saW5rMT1nW2xdfWlmKGQpai50eXBlPSJhcHBsaWNhdGlvbi94LXNob2Nr d2F2ZS1mbGFzaCIsai5kYXRhPWw7ZWxzZXtpZighZSl7aWYoaS5hbHQpe3ZhciBt LG47Zm9yKG0gaW4gaS5hbHQpbj1pLmFsdFttXTt2YXIgbz1zcHJpbnRmKCc8YSBo cmVmPSIlcyIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSIlcyIgYWx0PSIiPjwv YT4nLG4sbSk7ay5odG1sKG8pfXJldHVybn1qLmNsYXNzaWQ9ImNsc2lkOkQyN0NE QjZFLUFFNkQtMTFjZi05NkI4LTQ0NDU1MzU0MDAwMCIsaS5tb3ZpZT1sfWEuaXNF bXB0eU9iamVjdChpLmZsYXNodmFycyk/ZGVsZXRlIGkuZmxhc2h2YXJzOmkuZmxh c2h2YXJzPWEucGFyYW0oaS5mbGFzaHZhcnMpLGRlbGV0ZSBpLmFsdDt2YXIgcD1i KGosJyVzPSIlcyInLCIgIikscT1iKGksJzxwYXJhbSBuYW1lPSIlcyIgdmFsdWU9 IiVzIiAvPicsIiIpLHI9c3ByaW50ZigiPG9iamVjdCAlcz4lczwvb2JqZWN0PiIs cCxxKTtrLmhlaWdodChmKS5jc3Moe292ZXJmbG93OiJoaWRkZW4ifSksay5odG1s KHIpfX0oalF1ZXJ5KTsNCjsvLyBqcy9saWIvanF1ZXJ5L2pxdWVyeS5pbWFnZXNs b2FkZWQuanMKIWZ1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO3ZhciBjPSJkYXRh OmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL3l3QUFB QUFBUUFCQUFBQ0FVd0FPdz09IjthLmZuLmltYWdlc0xvYWRlZD1mdW5jdGlvbihk KXtmdW5jdGlvbiBlKCl7dmFyIGI9YShsKSxjPWEobSk7aCYmKG0ubGVuZ3RoP2gu cmVqZWN0KGosYixjKTpoLnJlc29sdmUoaikpLGEuaXNGdW5jdGlvbihkKSYmZC5j YWxsKGcsaixiLGMpfWZ1bmN0aW9uIGYoYixkKXtiLnNyYyE9PWMmJmEuaW5BcnJh eShiLGspPT09LTEmJihrLnB1c2goYiksZD9tLnB1c2goYik6bC5wdXNoKGIpLGEu ZGF0YShiLCJpbWFnZXNMb2FkZWQiLHtpc0Jyb2tlbjpkLHNyYzpiLnNyY30pLGkm Jmgubm90aWZ5V2l0aChhKGIpLFtkLGosYShsKSxhKG0pXSksai5sZW5ndGg9PT1r Lmxlbmd0aCYmKHNldFRpbWVvdXQoZSksai51bmJpbmQoIi5pbWFnZXNMb2FkZWQi KSkpfXZhciBnPXRoaXMsaD1hLmlzRnVuY3Rpb24oYS5EZWZlcnJlZCk/YS5EZWZl cnJlZCgpOjAsaT1hLmlzRnVuY3Rpb24oaC5ub3RpZnkpLGo9Zy5maW5kKCJpbWci KS5hZGQoZy5maWx0ZXIoImltZyIpKSxrPVtdLGw9W10sbT1bXTtyZXR1cm4gYS5p c1BsYWluT2JqZWN0KGQpJiZhLmVhY2goZCxmdW5jdGlvbihhLGIpeyJjYWxsYmFj ayI9PT1hP2Q9YjpoJiZoW2FdKGIpfSksai5sZW5ndGg/ai5iaW5kKCJsb2FkLmlt YWdlc0xvYWRlZCBlcnJvci5pbWFnZXNMb2FkZWQiLGZ1bmN0aW9uKGEpe2YoYS50 YXJnZXQsImVycm9yIj09PWEudHlwZSl9KS5lYWNoKGZ1bmN0aW9uKGQsZSl7dmFy IGc9ZS5zcmMsaD1hLmRhdGEoZSwiaW1hZ2VzTG9hZGVkIik7cmV0dXJuIGgmJmgu c3JjPT09Zz92b2lkIGYoZSxoLmlzQnJva2VuKTplLmNvbXBsZXRlJiZlLm5hdHVy YWxXaWR0aCE9PWI/dm9pZCBmKGUsMD09PWUubmF0dXJhbFdpZHRofHwwPT09ZS5u YXR1cmFsSGVpZ2h0KTp2b2lkKChlLnJlYWR5U3RhdGV8fGUuY29tcGxldGUpJiYo ZS5zcmM9YyxlLnNyYz1nKSl9KTplKCksaD9oLnByb21pc2UoZyk6Z319KGpRdWVy eSk7DQo7Ly8ganMvbGliL2pxdWVyeS9qcXVlcnkubWV0YWRhdGEuanMKIWZ1bmN0 aW9uKCQpeyQuZXh0ZW5kKHttZXRhZGF0YTp7ZGVmYXVsdHM6e3R5cGU6ImNsYXNz IixuYW1lOiJtZXRhZGF0YSIsY3JlOi8oey4qfSkvLHNpbmdsZToibWV0YWRhdGEi fSxzZXRUeXBlOmZ1bmN0aW9uKGEsYil7dGhpcy5kZWZhdWx0cy50eXBlPWEsdGhp cy5kZWZhdWx0cy5uYW1lPWJ9LGdldDpmdW5jdGlvbihlbGVtLG9wdHMpe3ZhciBz ZXR0aW5ncz0kLmV4dGVuZCh7fSx0aGlzLmRlZmF1bHRzLG9wdHMpO3NldHRpbmdz LnNpbmdsZS5sZW5ndGh8fChzZXR0aW5ncy5zaW5nbGU9Im1ldGFkYXRhIik7dmFy IGRhdGE9JC5kYXRhKGVsZW0sc2V0dGluZ3Muc2luZ2xlKTtpZihkYXRhKXJldHVy biBkYXRhO2RhdGE9Int9Ijt2YXIgZ2V0RGF0YT1mdW5jdGlvbihkYXRhKXtyZXR1 cm4ic3RyaW5nIiE9dHlwZW9mIGRhdGE/ZGF0YTp2b2lkKGRhdGEuaW5kZXhPZigi eyIpPDAmJihkYXRhPWV2YWwoIigiK2RhdGErIikiKSkpfSxnZXRPYmplY3Q9ZnVu Y3Rpb24oZGF0YSl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBkYXRhP2RhdGE6ZGF0 YT1ldmFsKCIoIitkYXRhKyIpIil9O2lmKCJodG1sNSI9PXNldHRpbmdzLnR5cGUp e3ZhciBvYmplY3Q9e307JChlbGVtLmF0dHJpYnV0ZXMpLmVhY2goZnVuY3Rpb24o KXt2YXIgYT10aGlzLm5vZGVOYW1lO3JldHVybiFhLm1hdGNoKC9eZGF0YS0vKXx8 KGE9YS5yZXBsYWNlKC9eZGF0YS0vLCIiKSx2b2lkKG9iamVjdFthXT1nZXRPYmpl Y3QodGhpcy5ub2RlVmFsdWUpKSl9KX1lbHNle2lmKCJjbGFzcyI9PXNldHRpbmdz LnR5cGUpe3ZhciBtPXNldHRpbmdzLmNyZS5leGVjKGVsZW0uY2xhc3NOYW1lKTtt JiYoZGF0YT1tWzFdKX1lbHNlIGlmKCJlbGVtIj09c2V0dGluZ3MudHlwZSl7aWYo IWVsZW0uZ2V0RWxlbWVudHNCeVRhZ05hbWUpcmV0dXJuO3ZhciBlPWVsZW0uZ2V0 RWxlbWVudHNCeVRhZ05hbWUoc2V0dGluZ3MubmFtZSk7ZS5sZW5ndGgmJihkYXRh PSQudHJpbShlWzBdLmlubmVySFRNTCkpfWVsc2UgaWYodm9pZCAwIT1lbGVtLmdl dEF0dHJpYnV0ZSl7dmFyIGF0dHI9ZWxlbS5nZXRBdHRyaWJ1dGUoc2V0dGluZ3Mu bmFtZSk7YXR0ciYmKGRhdGE9YXR0cil9b2JqZWN0PWdldE9iamVjdChkYXRhLmlu ZGV4T2YoInsiKTwwPyJ7IitkYXRhKyJ9IjpkYXRhKX1yZXR1cm4gJC5kYXRhKGVs ZW0sc2V0dGluZ3Muc2luZ2xlLG9iamVjdCksb2JqZWN0fX19KSwkLmZuLm1ldGFk YXRhPWZ1bmN0aW9uKGEpe3JldHVybiAkLm1ldGFkYXRhLmdldCh0aGlzWzBdLGEp fX0oalF1ZXJ5KTsNCjsvLyBqcy9saWIvanF1ZXJ5L2pxdWVyeS5taXNjLmpzCiFm dW5jdGlvbihhKXthLmZuLnNlbGVjdFRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhp cy5lYWNoKGZ1bmN0aW9uKGEsYil7dmFyIGM9ZG9jdW1lbnQuY3JlYXRlUmFuZ2Uo KTtjLnNlbGVjdE5vZGVDb250ZW50cyhiKTt2YXIgZD13aW5kb3cuZ2V0U2VsZWN0 aW9uKCk7ZC5yZW1vdmVBbGxSYW5nZXMoKSxkLmFkZFJhbmdlKGMpfSl9LGEuZm4u aGxTZWxlY3RlZE9wdGlvbj1mdW5jdGlvbigpe3ZhciBiPWZ1bmN0aW9uKGIpe2Eo Im9wdGlvbiIsYikucmVtb3ZlQ2xhc3MoInNlbGVjdGVkIikuZmlsdGVyKCJvcHRp b246Y2hlY2tlZCIpLmFkZENsYXNzKCJzZWxlY3RlZCIpfTtyZXR1cm4gdGhpcy5l YWNoKGZ1bmN0aW9uKCl7Yih0aGlzKSxhKHRoaXMpLmNoYW5nZShmdW5jdGlvbigp e2IodGhpcyl9KX0pfSxhLmZuLmluamVjdElGcmFtZT1mdW5jdGlvbihiLGMsZCl7 dmFyIGU9YSh0aGlzKSxmPWEuZXh0ZW5kKHtzdHlsZToiZGlzcGxheTogYmxvY2s7 IG1hcmdpbjogMCBhdXRvOyIsd2lkdGg6IiIsaGVpZ2h0OiIifSxjKSxnPWEuZXh0 ZW5kKHtybmQ6QkIucmFuZF9udW19LGQpOzA9PWIuaW5kZXhPZigiLy8iKSYmKGI9 bG9jYXRpb24ucHJvdG9jb2wrYiksYis9Yi5pbmRleE9mKCI/Iik9PS0xPyI/Ijoi JiIsYis9YS5wYXJhbShnKSxhKHNwcmludGYoJzxpZnJhbWUgc3JjPSIlcyIgd2lk dGg9IiVzIiBoZWlnaHQ9IiVzIiBzdHlsZT0iJXMiIG1hcmdpbndpZHRoPSIwIiBt YXJnaW5oZWlnaHQ9IjAiIHNjcm9sbGluZz0ibm8iIGZyYW1lYm9yZGVyPSIwIj48 L2lmcmFtZT4nLGIsZi53aWR0aCxmLmhlaWdodCxmLnN0eWxlKSkuYXBwZW5kVG8o ZSl9LGEuZm4uaW5qZWN0QmVndW5BZD1mdW5jdGlvbihiKXt2YXIgYz1hLmV4dGVu ZCh7YmVndW5fYmxvY2tfaWQ6IiIsYmFja2dyb3VuZENvbG9yOiIiLHdpZHRoOiIi LGhlaWdodDoiIixyZWFsX3JlZmVyOiIiLHJlZjpCQi5yZWZlcnJlcn0sYiksZD1C Qi5iZWd1bl9pZnJhbWVfc3JjKyI/IithLnBhcmFtKGMpO2EodGhpcykuaW5qZWN0 SUZyYW1lKGQsYyl9O3ZhciBiPS9cQig/PSg/OlxkezN9KSsoPyFcZCkpL2c7YS5m bi5udW1iZXJGb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0 aW9uKCl7dGhpcy5pbm5lckhUTUw9dGhpcy5pbm5lckhUTUwucmVwbGFjZShiLCIs Iil9KX19KGpRdWVyeSk7DQo7Ly8ganMvbGliL2pxdWVyeS9qcXVlcnkubW9kYWwu anMKIWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYSl7dmFyIGI9U3RyaW5nKGEpLm1h dGNoKC9bPyZddD0oXGQrKS8pO3JldHVybiBiP2JbMV06MH12YXIgYz1udWxsO2Eu bW9kYWw9ZnVuY3Rpb24oZCxlKXthLm1vZGFsLmNsb3NlKCk7dmFyIGY7aWYodGhp cy4kYm9keT1hKCJib2R5IiksdGhpcy5vcHRpb25zPWEuZXh0ZW5kKHt9LGEubW9k YWwuZGVmYXVsdHMsZSksInZpZGVvIj09dGhpcy5vcHRpb25zLm1vZGUpe3RoaXMu c2hvd1NwaW5uZXIoKSx0aGlzLiRlbG09YSgnPGRpdiBjbGFzcz0ibW9kYWwtdmlk ZW8iPjwvZGl2PicpO3ZhciBnPWEoJzxpZnJhbWUgd2lkdGg9Ijg1NCIgaGVpZ2h0 PSI0ODAiIGZyYW1lYm9yZGVyPSIwIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+ JyksaCxpO3N3aXRjaCh0aGlzLm9wdGlvbnMucHJvdmlkZXIpe2Nhc2UiWW91VHVi ZSI6aD0iLy93d3cueW91dHViZS5jb20vZW1iZWQvIixpPWEucGFyYW0oe3dtb2Rl OiJvcGFxdWUiLHN0YXJ0OmIodGhpcy5vcHRpb25zLnVybCksYXV0b3BsYXk6MSxh dXRvaGlkZToxLGl2X2xvYWRfcG9saWN5OjN9KTticmVhaztjYXNlIlZpbWVvIjpo PSIvL3BsYXllci52aW1lby5jb20vdmlkZW8vIixpPWEucGFyYW0oe2F1dG9wbGF5 OjF9KTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiaW52YWxpZCBtb2Rl OiAiK3RoaXMub3B0aW9ucy5tb2RlKX1nLmF0dHIoInNyYyIsaCt0aGlzLm9wdGlv bnMudmlkZW9faWQrIj8iK2kpLm9uKCJsb2FkIixmdW5jdGlvbigpe2MmJmMuaGlk ZVNwaW5uZXIoKX0pLmFwcGVuZFRvKHRoaXMuJGVsbSksdGhpcy4kZWxtLmNzcyh7 d2lkdGg6dGhpcy5vcHRpb25zLndpZHRoLGhlaWdodDp0aGlzLm9wdGlvbnMuaGVp Z2h0fSkub24oIm1vZGFsOmNsb3NlIixmdW5jdGlvbigpe2EodGhpcykucmVtb3Zl KCksYyYmYy5oaWRlU3Bpbm5lcigpfSkuYXBwZW5kVG8odGhpcy4kYm9keSksdGhp cy5vcGVuKCl9ZWxzZSBpZihkLmlzKCJhIikpe2lmKGY9ZC5hdHRyKCJocmVmIiks L14jLy50ZXN0KGYpKXtpZih0aGlzLiRlbG09YShmKSwxIT09dGhpcy4kZWxtLmxl bmd0aClyZXR1cm4gbnVsbDt0aGlzLm9wZW4oKX19ZWxzZSB0aGlzLiRlbG09ZCx0 aGlzLm9wZW4oKTt2YXIgaj1hKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpO2ouaXMo ImlucHV0LHNlbGVjdCxidXR0b24iKSYmdGhpcy4kZWxtLm9uKCJtb2RhbDpjbG9z ZSIsZnVuY3Rpb24oKXtqLmZvY3VzKCl9KX0sYS5tb2RhbC5wcm90b3R5cGU9e2Nv bnN0cnVjdG9yOmEubW9kYWwsb3BlbjpmdW5jdGlvbigpe3RoaXMuYmxvY2soKSx0 aGlzLnNob3coKTt2YXIgYj10aGlzLm9wdGlvbnMuZXNjYXBlQ2xvc2U7YShkb2N1 bWVudCkub24oImtleWRvd24ubW9kYWwiLGZ1bmN0aW9uKGMpe2ImJjI3PT1jLndo aWNoJiZhLm1vZGFsLmNsb3NlKCksYS5pbkFycmF5KGMud2hpY2gsWzMzLDM0LDM1 LDM2LDM4LDQwXSkhPS0xJiZjLnByZXZlbnREZWZhdWx0KCl9KSx0aGlzLm9wdGlv bnMuY2xpY2tDbG9zZSYmdGhpcy4kYmxvY2tlci5jbGljayhhLm1vZGFsLmNsb3Nl KX0sY2xvc2U6ZnVuY3Rpb24oKXt0aGlzLnVuYmxvY2soKSx0aGlzLmhpZGUoKSxh KGRvY3VtZW50KS5vZmYoImtleWRvd24ubW9kYWwiKX0sYmxvY2s6ZnVuY3Rpb24o KXt0aGlzLiRibG9ja2VyPWEoIiNtb2RhbC1ibG9ja2VyIikuc2hvdygpLHRoaXMu JGJvZHkuYXBwZW5kKHRoaXMuJGJsb2NrZXIpfSx1bmJsb2NrOmZ1bmN0aW9uKCl7 dGhpcy4kYmxvY2tlci5oaWRlKCl9LHNob3c6ZnVuY3Rpb24oKXt0aGlzLmNsb3Nl QnV0dG9uPWEoJzxhIGlkPSJtb2RhbC1jbG9zZS1idG4iIGhyZWY9IiNjbG9zZS1t b2RhbCIgcmVsPSJtb2RhbDpjbG9zZSI+PC9hPicpLHRoaXMuJGVsbS5hcHBlbmQo dGhpcy5jbG9zZUJ1dHRvbiksdGhpcy4kZWxtLmFkZENsYXNzKCJtb2RhbCBjdXJy ZW50IiksdGhpcy5jZW50ZXIoKSx0aGlzLiRlbG0uc2hvdygpfSxoaWRlOmZ1bmN0 aW9uKCl7dGhpcy5jbG9zZUJ1dHRvbiYmdGhpcy5jbG9zZUJ1dHRvbi5yZW1vdmUo KSx0aGlzLiRlbG0ucmVtb3ZlQ2xhc3MoImN1cnJlbnQiKS5oaWRlKCksdGhpcy4k ZWxtLnRyaWdnZXIoIm1vZGFsOmNsb3NlIixbdGhpcy5fY3R4KCldKX0sc2hvd1Nw aW5uZXI6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuc2hvd1NwaW5uZXImJih0aGlz LnNwaW5uZXI9dGhpcy5zcGlubmVyfHxhKCc8ZGl2IGlkPSJtb2RhbC1zcGlubmVy Ij48L2Rpdj4nKSx0aGlzLiRib2R5LmFwcGVuZCh0aGlzLnNwaW5uZXIpLHRoaXMu c3Bpbm5lci5zaG93KCkpfSxoaWRlU3Bpbm5lcjpmdW5jdGlvbigpe3RoaXMuc3Bp bm5lciYmdGhpcy5zcGlubmVyLnJlbW92ZSgpfSxjZW50ZXI6ZnVuY3Rpb24oKXt0 aGlzLiRlbG0uY3NzKHtwb3NpdGlvbjoiZml4ZWQiLHRvcDoiNTAlIixsZWZ0OiI1 MCUiLG1hcmdpblRvcDotKHRoaXMuJGVsbS5vdXRlckhlaWdodCgpLzIpLG1hcmdp bkxlZnQ6LSh0aGlzLiRlbG0ub3V0ZXJXaWR0aCgpLzIpLHpJbmRleDp0aGlzLm9w dGlvbnMuekluZGV4KzF9KX0sX2N0eDpmdW5jdGlvbigpe3JldHVybntlbG06dGhp cy4kZWxtLGJsb2NrZXI6dGhpcy4kYmxvY2tlcixvcHRpb25zOnRoaXMub3B0aW9u c319fSxhLm1vZGFsLnByb3RvdHlwZS5yZXNpemU9YS5tb2RhbC5wcm90b3R5cGUu Y2VudGVyLGEubW9kYWwuY2xvc2U9ZnVuY3Rpb24oYSl7aWYoYyl7YSYmYS5wcmV2 ZW50RGVmYXVsdCgpLGMuY2xvc2UoKTt2YXIgYj1jLiRlbG07cmV0dXJuIGM9bnVs bCxifX0sYS5tb2RhbC5yZXNpemU9ZnVuY3Rpb24oKXtjJiZjLnJlc2l6ZSgpfSxh Lm1vZGFsLmRlZmF1bHRzPXttb2RlOiIiLGVzY2FwZUNsb3NlOiEwLGNsaWNrQ2xv c2U6ITAsc2hvd1NwaW5uZXI6ITAsd2lkdGg6ODU0LGhlaWdodDo0ODB9LGEuZm4u bW9kYWw9ZnVuY3Rpb24oYil7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmKGM9bmV3 IGEubW9kYWwodGhpcyxiKSksdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLm1v ZGFsIiwnYVtyZWw9Im1vZGFsOmNsb3NlIl0nLGEubW9kYWwuY2xvc2UpLGEoZG9j dW1lbnQpLm9uKCJjbGljay5tb2RhbCIsJ2FbcmVsPSJtb2RhbDpvcGVuIl0nLGZ1 bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKSxhKHRoaXMpLm1vZGFsKCl9KX0o alF1ZXJ5KTsNCjsvLyBqcy9saWIvanF1ZXJ5L2pxdWVyeS5xdWlja3NlYXJjaC5q cwohZnVuY3Rpb24oYSxiLGMsZCl7YS5mbi5xdWlja3NlYXJjaD1mdW5jdGlvbihj LGQpe3ZhciBlLGYsZyxoLGk9IiIsaj10aGlzLGs9YS5leHRlbmQoe2RlbGF5OjUw MCxzZWxlY3RvcjpudWxsLHN0cmlwZVJvd3M6bnVsbCxsb2FkZXI6bnVsbCxub1Jl c3VsdHM6IiIsbWF0Y2hlZFJlc3VsdHNDb3VudDowLGJpbmQ6ImtleXVwIGN1dCBw YXN0ZSIsb25CZWZvcmU6ZnVuY3Rpb24oKXt9LG9uQWZ0ZXI6ZnVuY3Rpb24oKXt9 LHNob3c6ZnVuY3Rpb24oKXt0aGlzLnN0eWxlLmRpc3BsYXk9IiJ9LGhpZGU6ZnVu Y3Rpb24oKXt0aGlzLnN0eWxlLmRpc3BsYXk9Im5vbmUifSxwcmVwYXJlUXVlcnk6 ZnVuY3Rpb24oYSl7cmV0dXJuIGEudG9Mb3dlckNhc2UoKS5zcGxpdCgiICIpfSx0 ZXN0UXVlcnk6ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZD0wO2Q8YS5sZW5ndGg7 ZCs9MSlpZihiLmluZGV4T2YoYVtkXSk9PT0tMSlyZXR1cm4hMTtyZXR1cm4hMH19 LGQpO3JldHVybiB0aGlzLmdvPWZ1bmN0aW9uKCl7Zm9yKHZhciBhPTAsYj0wLGM9 ITAsZD1rLnByZXBhcmVRdWVyeShpKSxlPTA9PT1pLnJlcGxhY2UoIiAiLCIiKS5s ZW5ndGgsYT0wLGg9Zy5sZW5ndGg7YTxoO2ErKyllfHxrLnRlc3RRdWVyeShkLGZb YV0sZ1thXSk/KGsuc2hvdy5hcHBseShnW2FdKSxjPSExLGIrKyk6ay5oaWRlLmFw cGx5KGdbYV0pO3JldHVybiBjP3RoaXMucmVzdWx0cyghMSk6KHRoaXMucmVzdWx0 cyghMCksdGhpcy5zdHJpcGUoKSksdGhpcy5tYXRjaGVkUmVzdWx0c0NvdW50PWIs dGhpcy5sb2FkZXIoITEpLGsub25BZnRlcigpLHRoaXN9LHRoaXMuc2VhcmNoPWZ1 bmN0aW9uKGEpe2k9YSxqLnRyaWdnZXIoKX0sdGhpcy5jdXJyZW50TWF0Y2hlZFJl c3VsdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXRjaGVkUmVzdWx0c0NvdW50 fSx0aGlzLnN0cmlwZT1mdW5jdGlvbigpe2lmKCJvYmplY3QiPT10eXBlb2Ygay5z dHJpcGVSb3dzJiZudWxsIT09ay5zdHJpcGVSb3dzKXt2YXIgYj1rLnN0cmlwZVJv d3Muam9pbigiICIpLGM9ay5zdHJpcGVSb3dzLmxlbmd0aDtoLm5vdCgiOmhpZGRl biIpLmVhY2goZnVuY3Rpb24oZCl7YSh0aGlzKS5yZW1vdmVDbGFzcyhiKS5hZGRD bGFzcyhrLnN0cmlwZVJvd3NbZCVjXSl9KX1yZXR1cm4gdGhpc30sdGhpcy5zdHJp cF9odG1sPWZ1bmN0aW9uKGIpe3ZhciBjPWIucmVwbGFjZShuZXcgUmVnRXhwKCI8 W148XSs+IiwiZyIpLCIiKTtyZXR1cm4gYz1hLnRyaW0oYy50b0xvd2VyQ2FzZSgp KX0sdGhpcy5yZXN1bHRzPWZ1bmN0aW9uKGIpe3JldHVybiJzdHJpbmciPT10eXBl b2Ygay5ub1Jlc3VsdHMmJiIiIT09ay5ub1Jlc3VsdHMmJihiP2Eoay5ub1Jlc3Vs dHMpLmhpZGUoKTphKGsubm9SZXN1bHRzKS5zaG93KCkpLHRoaXN9LHRoaXMubG9h ZGVyPWZ1bmN0aW9uKGIpe3JldHVybiJzdHJpbmciPT10eXBlb2Ygay5sb2FkZXIm JiIiIT09ay5sb2FkZXImJihiP2Eoay5sb2FkZXIpLnNob3coKTphKGsubG9hZGVy KS5oaWRlKCkpLHRoaXN9LHRoaXMuY2FjaGU9ZnVuY3Rpb24oKXtoPWEoYyksInN0 cmluZyI9PXR5cGVvZiBrLm5vUmVzdWx0cyYmIiIhPT1rLm5vUmVzdWx0cyYmKGg9 aC5ub3Qoay5ub1Jlc3VsdHMpKTt2YXIgYj0ic3RyaW5nIj09dHlwZW9mIGsuc2Vs ZWN0b3I/aC5maW5kKGsuc2VsZWN0b3IpOmEoYykubm90KGsubm9SZXN1bHRzKTty ZXR1cm4gZj1iLm1hcChmdW5jdGlvbigpe3JldHVybiBqLnN0cmlwX2h0bWwodGhp cy5pbm5lckhUTUwpfSksZz1oLm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzfSks aT1pfHx0aGlzLnZhbCgpfHwiIix0aGlzLmdvKCl9LHRoaXMudHJpZ2dlcj1mdW5j dGlvbigpe3JldHVybiB0aGlzLmxvYWRlcighMCksay5vbkJlZm9yZSgpLGouZ28o KSx0aGlzfSx0aGlzLmNhY2hlKCksdGhpcy5yZXN1bHRzKCEwKSx0aGlzLnN0cmlw ZSgpLHRoaXMubG9hZGVyKCExKSx0aGlzLmVhY2goZnVuY3Rpb24oKXthKHRoaXMp Lm9uKGsuYmluZCxmdW5jdGlvbigpe2k9YSh0aGlzKS52YWwoKSxiLmNsZWFyVGlt ZW91dChlKSxlPWIuc2V0VGltZW91dChmdW5jdGlvbigpe2oudHJpZ2dlcigpfSxr LmRlbGF5KX0pfSl9fShqUXVlcnksdGhpcyxkb2N1bWVudCk7DQo7Ly8ganMvbGli L2pxdWVyeS9qcXVlcnkuc2Nyb2xsVG8uanMKIWZ1bmN0aW9uKGEpeyJmdW5jdGlv biI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFsianF1ZXJ5Il0s YSk6YShqUXVlcnkpfShmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGEpe3JldHVybiJv YmplY3QiPT10eXBlb2YgYT9hOnt0b3A6YSxsZWZ0OmF9fXZhciBjPWEuc2Nyb2xs VG89ZnVuY3Rpb24oYixjLGQpe3JldHVybiBhKHdpbmRvdykuc2Nyb2xsVG8oYixj LGQpfTtyZXR1cm4gYy5kZWZhdWx0cz17YXhpczoieHkiLGR1cmF0aW9uOnBhcnNl RmxvYXQoYS5mbi5qcXVlcnkpPj0xLjM/MDoxLGxpbWl0OiEwfSxjLndpbmRvdz1m dW5jdGlvbihiKXtyZXR1cm4gYSh3aW5kb3cpLl9zY3JvbGxhYmxlKCl9LGEuZm4u X3Njcm9sbGFibGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24o KXt2YXIgYj10aGlzLGM9IWIubm9kZU5hbWV8fGEuaW5BcnJheShiLm5vZGVOYW1l LnRvTG93ZXJDYXNlKCksWyJpZnJhbWUiLCIjZG9jdW1lbnQiLCJodG1sIiwiYm9k eSJdKSE9LTE7aWYoIWMpcmV0dXJuIGI7dmFyIGQ9KGIuY29udGVudFdpbmRvd3x8 YikuZG9jdW1lbnR8fGIub3duZXJEb2N1bWVudHx8YjtyZXR1cm4vd2Via2l0L2ku dGVzdChuYXZpZ2F0b3IudXNlckFnZW50KXx8IkJhY2tDb21wYXQiPT1kLmNvbXBh dE1vZGU/ZC5ib2R5OmQuZG9jdW1lbnRFbGVtZW50fSl9LGEuZm4uc2Nyb2xsVG89 ZnVuY3Rpb24oZCxlLGYpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmKGY9ZSxl PTApLCJmdW5jdGlvbiI9PXR5cGVvZiBmJiYoZj17b25BZnRlcjpmfSksIm1heCI9 PWQmJihkPTllOSksZj1hLmV4dGVuZCh7fSxjLmRlZmF1bHRzLGYpLGU9ZXx8Zi5k dXJhdGlvbixmLnF1ZXVlPWYucXVldWUmJmYuYXhpcy5sZW5ndGg+MSxmLnF1ZXVl JiYoZS89MiksZi5vZmZzZXQ9YihmLm9mZnNldCksZi5vdmVyPWIoZi5vdmVyKSx0 aGlzLl9zY3JvbGxhYmxlKCkuZWFjaChmdW5jdGlvbigpe2Z1bmN0aW9uIGcoYSl7 aS5hbmltYXRlKGwsZSxmLmVhc2luZyxhJiZmdW5jdGlvbigpe2EuY2FsbCh0aGlz LGosZil9KX1pZihudWxsIT1kKXt2YXIgaD10aGlzLGk9YShoKSxqPWQsayxsPXt9 LG09aS5pcygiaHRtbCxib2R5Iik7c3dpdGNoKHR5cGVvZiBqKXtjYXNlIm51bWJl ciI6Y2FzZSJzdHJpbmciOmlmKC9eKFsrLV09Pyk/XGQrKFwuXGQrKT8ocHh8JSk/ JC8udGVzdChqKSl7aj1iKGopO2JyZWFrfWlmKGo9YShqLHRoaXMpLCFqLmxlbmd0 aClyZXR1cm47Y2FzZSJvYmplY3QiOihqLmlzfHxqLnN0eWxlKSYmKGs9KGo9YShq KSkub2Zmc2V0KCkpfWEuZWFjaChmLmF4aXMuc3BsaXQoIiIpLGZ1bmN0aW9uKGEs Yil7dmFyIGQ9IngiPT1iPyJMZWZ0IjoiVG9wIixlPWQudG9Mb3dlckNhc2UoKSxu PSJzY3JvbGwiK2Qsbz1oW25dLHA9Yy5tYXgoaCxiKTtpZihrKWxbbl09a1tlXSso bT8wOm8taS5vZmZzZXQoKVtlXSksZi5tYXJnaW4mJihsW25dLT1wYXJzZUludChq LmNzcygibWFyZ2luIitkKSl8fDAsbFtuXS09cGFyc2VJbnQoai5jc3MoImJvcmRl ciIrZCsiV2lkdGgiKSl8fDApLGxbbl0rPWYub2Zmc2V0W2VdfHwwLGYub3Zlcltl XSYmKGxbbl0rPWpbIngiPT1iPyJ3aWR0aCI6ImhlaWdodCJdKCkqZi5vdmVyW2Vd KTtlbHNle3ZhciBxPWpbZV07bFtuXT1xLnNsaWNlJiYiJSI9PXEuc2xpY2UoLTEp P3BhcnNlRmxvYXQocSkvMTAwKnA6cX1mLmxpbWl0JiYvXlxkKyQvLnRlc3QobFtu XSkmJihsW25dPWxbbl08PTA/MDpNYXRoLm1pbihsW25dLHApKSwhYSYmZi5xdWV1 ZSYmKG8hPWxbbl0mJmcoZi5vbkFmdGVyRmlyc3QpLGRlbGV0ZSBsW25dKX0pLGco Zi5vbkFmdGVyKX19KS5lbmQoKX0sYy5tYXg9ZnVuY3Rpb24oYixjKXt2YXIgZD0i eCI9PWM/IldpZHRoIjoiSGVpZ2h0IixlPSJzY3JvbGwiK2Q7aWYoIWEoYikuaXMo Imh0bWwsYm9keSIpKXJldHVybiBiW2VdLWEoYilbZC50b0xvd2VyQ2FzZSgpXSgp O3ZhciBmPSJjbGllbnQiK2QsZz1iLm93bmVyRG9jdW1lbnQuZG9jdW1lbnRFbGVt ZW50LGg9Yi5vd25lckRvY3VtZW50LmJvZHk7cmV0dXJuIE1hdGgubWF4KGdbZV0s aFtlXSktTWF0aC5taW4oZ1tmXSxoW2ZdKX0sY30pOw0KOy8vIGpzL2xpYi9qcXVl cnkvanF1ZXJ5LnNjcm9sbHlUYWJsZS5qcwohZnVuY3Rpb24oYSl7YS5mbi5zY3Jv bGx5VGFibGU9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYygpe3JldHVybiAxNn12YXIg ZD1hLmV4dGVuZCh7c2Nyb2xsX21heF9oZWlnaHQ6ImF1dG8ifSxiKTt0aGlzLmVh Y2goZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpLGU9Wyc8ZGl2IGNsYXNzPSJzY3Jv bGx5Ij4nLCcgIDx0YWJsZSBjbGFzcz0ic2Nyb2xseS1oZWFkIj48L3RhYmxlPics JyAgPGRpdiAgIGNsYXNzPSJzY3JvbGx5LWJvZHkiPjwvZGl2PicsJyAgPHRhYmxl IGNsYXNzPSJzY3JvbGx5LWZvb3QiPjwvdGFibGU+JywiPC9kaXY+Il0uam9pbigi IiksZj1hKGUpLmluc2VydEJlZm9yZShiKSxnPWYuZmluZCgiLnNjcm9sbHktaGVh ZCIpLGg9Zi5maW5kKCIuc2Nyb2xseS1ib2R5IiksaT1mLmZpbmQoIi5zY3JvbGx5 LWZvb3QiKSxqPWIuYXR0cigiY2xhc3MiKTtmLmFkZChnKS5hZGQoaSkuYWRkQ2xh c3MoaiksYi5hcHBlbmRUbyhoKTt2YXIgaz1iLndpZHRoKCksbD1jKCk7aWYoYi53 aWR0aChrKSxmLndpZHRoKGsrbCksYSgidGhlYWQgdGgsIHRib2R5IHRyOmZpcnN0 IHRkLCB0Zm9vdCB0ZCIsYikuZWFjaChmdW5jdGlvbigpe2EodGhpcykud2lkdGgo YSh0aGlzKS53aWR0aCgpKX0pLGIuZmluZCgidGhlYWQiKS5hcHBlbmRUbyhnKSxi LmZpbmQoInRmb290IikuYXBwZW5kVG8oaSksImF1dG8iPT1kLnNjcm9sbF9tYXhf aGVpZ2h0KXt2YXIgbT0xMDAsbj1hKHdpbmRvdykuaGVpZ2h0KCktZy5vdXRlckhl aWdodCgpLWkub3V0ZXJIZWlnaHQoKTtkLnNjcm9sbF9tYXhfaGVpZ2h0PU1hdGgu bWF4KG4sbSl9aC5jc3MoeyJvdmVyZmxvdy15IjoiYXV0byIsIm92ZXJmbG93LXgi OiJoaWRkZW4iLCJtYXgtaGVpZ2h0IjpkLnNjcm9sbF9tYXhfaGVpZ2h0KyJweCJ9 KTt2YXIgbz1nLmZpbmQoInRoIik7Yi5vbigibW91c2VlbnRlciBtb3VzZWxlYXZl IiwidGQiLGZ1bmN0aW9uKCl7aWYobnVsbD09YSh0aGlzKS5hdHRyKCJjb2xzcGFu Iikpe3ZhciBiPWEodGhpcykuaW5kZXgoKTtvLmVxKGIpLnRvZ2dsZUNsYXNzKCJo bC1ob3ZlcmVkLWNvbHVtbiIpfX0pfSl9fShqUXVlcnkpOw0KOy8vIGpzL2xpYi9q cXVlcnkvanF1ZXJ5LnRhYmxlc29ydGVyLmpzCiFmdW5jdGlvbigkKXskLmV4dGVu ZCh7dGFibGVzb3J0ZXI6bmV3IGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYmVuY2htYXJr KGEsYil7bG9nKGErIiwiKygobmV3IERhdGUpLmdldFRpbWUoKS1iLmdldFRpbWUo KSkrIm1zIil9ZnVuY3Rpb24gbG9nKGEpeyJ1bmRlZmluZWQiIT10eXBlb2YgY29u c29sZSYmInVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlLmRlYnVnP2NvbnNvbGUu bG9nKGEpOmFsZXJ0KGEpfWZ1bmN0aW9uIGJ1aWxkUGFyc2VyQ2FjaGUoYSxiKXtp ZihhLmNvbmZpZy5kZWJ1Zyl2YXIgYz0iIjt2YXIgZD1hLnRCb2RpZXNbMF0ucm93 cztpZihhLnRCb2RpZXNbMF0ucm93c1swXSlmb3IodmFyIGU9W10sZj1kWzBdLmNl bGxzLGc9Zi5sZW5ndGgsaD0wO2g8ZztoKyspe3ZhciBpPSExOyQubWV0YWRhdGEm JiQoYltoXSkubWV0YWRhdGEoKSYmJChiW2hdKS5tZXRhZGF0YSgpLnNvcnRlcj9p PWdldFBhcnNlckJ5SWQoJChiW2hdKS5tZXRhZGF0YSgpLnNvcnRlcik6YS5jb25m aWcuaGVhZGVyc1toXSYmYS5jb25maWcuaGVhZGVyc1toXS5zb3J0ZXImJihpPWdl dFBhcnNlckJ5SWQoYS5jb25maWcuaGVhZGVyc1toXS5zb3J0ZXIpKSxpfHwoaT1k ZXRlY3RQYXJzZXJGb3JDb2x1bW4oYSxmW2hdKSksYS5jb25maWcuZGVidWcmJihj Kz0iY29sdW1uOiIraCsiIHBhcnNlcjoiK2kuaWQrIlxuIiksZS5wdXNoKGkpfXJl dHVybiBhLmNvbmZpZy5kZWJ1ZyYmbG9nKGMpLGV9ZnVuY3Rpb24gZGV0ZWN0UGFy c2VyRm9yQ29sdW1uKGEsYil7Zm9yKHZhciBjPXBhcnNlcnMubGVuZ3RoLGQ9MTtk PGM7ZCsrKWlmKHBhcnNlcnNbZF0uaXMoJC50cmltKGdldEVsZW1lbnRUZXh0KGEu Y29uZmlnLGIpKSxhLGIpKXJldHVybiBwYXJzZXJzW2RdO3JldHVybiBwYXJzZXJz WzBdfWZ1bmN0aW9uIGdldFBhcnNlckJ5SWQoYSl7Zm9yKHZhciBiPXBhcnNlcnMu bGVuZ3RoLGM9MDtjPGI7YysrKWlmKHBhcnNlcnNbY10uaWQudG9Mb3dlckNhc2Uo KT09YS50b0xvd2VyQ2FzZSgpKXJldHVybiBwYXJzZXJzW2NdO3JldHVybiExfWZ1 bmN0aW9uIGJ1aWxkQ2FjaGUoYSl7aWYoYS5jb25maWcuZGVidWcpdmFyIGI9bmV3 IERhdGU7Zm9yKHZhciBjPWEudEJvZGllc1swXSYmYS50Qm9kaWVzWzBdLnJvd3Mu bGVuZ3RofHwwLGQ9YS50Qm9kaWVzWzBdLnJvd3NbMF0mJmEudEJvZGllc1swXS5y b3dzWzBdLmNlbGxzLmxlbmd0aHx8MCxlPWEuY29uZmlnLnBhcnNlcnMsZj17cm93 OltdLG5vcm1hbGl6ZWQ6W119LGc9MDtnPGM7KytnKXt2YXIgaD1hLnRCb2RpZXNb MF0ucm93c1tnXSxpPVtdO2Yucm93LnB1c2goJChoKSk7Zm9yKHZhciBqPTA7ajxk OysrailpLnB1c2goZVtqXS5mb3JtYXQoZ2V0RWxlbWVudFRleHQoYS5jb25maWcs aC5jZWxsc1tqXSksYSxoLmNlbGxzW2pdKSk7aS5wdXNoKGcpLGYubm9ybWFsaXpl ZC5wdXNoKGkpLGk9bnVsbH1yZXR1cm4gYS5jb25maWcuZGVidWcmJihiZW5jaG1h cmsoIkJ1aWxkaW5nIGNhY2hlIGZvciAiK2MrIiByb3dzOiIsYiksbG9nKGYpKSxm fWZ1bmN0aW9uIGdldEVsZW1lbnRUZXh0KGEsYil7aWYoIWIpcmV0dXJuIiI7dmFy IGM9dm9pZCAwO2lmKCJzaW1wbGUiPT1hLnRleHRFeHRyYWN0aW9uKXtpZihiLmNo aWxkTm9kZXNbMF0pZm9yKHZhciBkPWIuY2hpbGROb2RlcyxlPWQubGVuZ3RoLGY9 MDtmPGU7ZisrKWlmKDE9PWRbZl0ubm9kZVR5cGUpeyJVIj09ZFtmXS50YWdOYW1l JiYoYz1kW2ZdLmlubmVySFRNTCk7YnJlYWt9fWVsc2UiZnVuY3Rpb24iPT10eXBl b2YgYS50ZXh0RXh0cmFjdGlvbiYmKGM9YS50ZXh0RXh0cmFjdGlvbihiKSk7cmV0 dXJuIHZvaWQgMD09PWMmJihjPWdldEVsVGV4dChiKSksYz0kLnRyaW0oYyl9ZnVu Y3Rpb24gYXBwZW5kVG9UYWJsZShhLGIpe2lmKGEuY29uZmlnLmRlYnVnKXZhciBj PW5ldyBEYXRlO2Zvcih2YXIgZD1iLGU9ZC5yb3csZj1kLm5vcm1hbGl6ZWQsZz1m Lmxlbmd0aCxoPWZbMF0ubGVuZ3RoLTEsaT0kKGEudEJvZGllc1swXSksaj1bXSxr PTA7azxnO2srKylpZihqLnB1c2goZVtmW2tdW2hdXSksIWEuY29uZmlnLmFwcGVu ZGVyKWZvcih2YXIgbD1lW2Zba11baF1dLG09bC5sZW5ndGgsbj0wO248bTtuKysp aVswXS5hcHBlbmRDaGlsZChsW25dKTthLmNvbmZpZy5hcHBlbmRlciYmYS5jb25m aWcuYXBwZW5kZXIoYSxqKSxqPW51bGwsYS5jb25maWcuZGVidWcmJmJlbmNobWFy aygiUmVidWlsdCB0YWJsZToiLGMpLGFwcGx5V2lkZ2V0KGEpLHNldFRpbWVvdXQo ZnVuY3Rpb24oKXskKGEpLnRyaWdnZXIoInNvcnRFbmQiKX0sMCl9ZnVuY3Rpb24g YnVpbGRIZWFkZXJzKGEpe2lmKGEuY29uZmlnLmRlYnVnKXZhciBiPW5ldyBEYXRl O2Zvcih2YXIgYz0hISQubWV0YWRhdGEsZD1bXSxlPTA7ZTxhLnRIZWFkLnJvd3Mu bGVuZ3RoO2UrKylkW2VdPTA7cmV0dXJuICR0YWJsZUhlYWRlcnM9JCgidGhlYWQg dGgiLGEpLCR0YWJsZUhlYWRlcnMuZWFjaChmdW5jdGlvbihiKXt0aGlzLmNvdW50 PTAsdGhpcy5jb2x1bW49Yix0aGlzLm9yZGVyPWZvcm1hdFNvcnRpbmdPcmRlcihh LmNvbmZpZy5zb3J0SW5pdGlhbE9yZGVyKSwoY2hlY2tIZWFkZXJNZXRhZGF0YSh0 aGlzKXx8Y2hlY2tIZWFkZXJPcHRpb25zKGEsYikpJiYodGhpcy5zb3J0RGlzYWJs ZWQ9ITApLHRoaXMuc29ydERpc2FibGVkfHwkKHRoaXMpLmFkZENsYXNzKGEuY29u ZmlnLmNzc0hlYWRlcikuZmluZCgiLnRicy10ZXh0IikuYWZ0ZXIoJzxzcGFuIGNs YXNzPSJ0YnMtaWNvbiI+Jm5ic3A7Jm5ic3A7PC9zcGFuPicpLGEuY29uZmlnLmhl YWRlckxpc3RbYl09dGhpc30pLGEuY29uZmlnLmRlYnVnJiYoYmVuY2htYXJrKCJC dWlsdCBoZWFkZXJzOiIsYiksbG9nKCR0YWJsZUhlYWRlcnMpKSwkdGFibGVIZWFk ZXJzfWZ1bmN0aW9uIGNoZWNrQ2VsbENvbFNwYW4oYSxiLGMpe2Zvcih2YXIgZD1b XSxlPWEudEhlYWQucm93cyxmPWVbY10uY2VsbHMsZz0wO2c8Zi5sZW5ndGg7Zysr KXt2YXIgaD1mW2ddO2guY29sU3Bhbj4xP2Q9ZC5jb25jYXQoY2hlY2tDZWxsQ29s U3BhbihhLGhlYWRlckFycixjKyspKTooMT09YS50SGVhZC5sZW5ndGh8fGgucm93 U3Bhbj4xfHwhZVtjKzFdKSYmZC5wdXNoKGgpfXJldHVybiBkfWZ1bmN0aW9uIGNo ZWNrSGVhZGVyTWV0YWRhdGEoYSl7cmV0dXJuISghJC5tZXRhZGF0YXx8JChhKS5t ZXRhZGF0YSgpLnNvcnRlciE9PSExKX1mdW5jdGlvbiBjaGVja0hlYWRlck9wdGlv bnMoYSxiKXtyZXR1cm4hKCFhLmNvbmZpZy5oZWFkZXJzW2JdfHxhLmNvbmZpZy5o ZWFkZXJzW2JdLnNvcnRlciE9PSExKX1mdW5jdGlvbiBhcHBseVdpZGdldChhKXtm b3IodmFyIGI9YS5jb25maWcud2lkZ2V0cyxjPWIubGVuZ3RoLGQ9MDtkPGM7ZCsr KWdldFdpZGdldEJ5SWQoYltkXSkuZm9ybWF0KGEpfWZ1bmN0aW9uIGdldFdpZGdl dEJ5SWQoYSl7Zm9yKHZhciBiPXdpZGdldHMubGVuZ3RoLGM9MDtjPGI7YysrKWlm KHdpZGdldHNbY10uaWQudG9Mb3dlckNhc2UoKT09YS50b0xvd2VyQ2FzZSgpKXJl dHVybiB3aWRnZXRzW2NdfWZ1bmN0aW9uIGZvcm1hdFNvcnRpbmdPcmRlcihhKXty ZXR1cm4iTnVtYmVyIiE9dHlwZW9mIGE/aT0iZGVzYyI9PWEudG9Mb3dlckNhc2Uo KT8xOjA6aT0xPT1hP2E6MCxpfWZ1bmN0aW9uIGlzVmFsdWVJbkFycmF5KGEsYil7 Zm9yKHZhciBjPWIubGVuZ3RoLGQ9MDtkPGM7ZCsrKWlmKGJbZF1bMF09PWEpcmV0 dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gc2V0SGVhZGVyc0NzcyhhLGIsYyxkKXti LnJlbW92ZUNsYXNzKGRbMF0pLnJlbW92ZUNsYXNzKGRbMV0pO3ZhciBlPVtdO2Iu ZWFjaChmdW5jdGlvbihhKXt0aGlzLnNvcnREaXNhYmxlZHx8KGVbdGhpcy5jb2x1 bW5dPSQodGhpcykpfSk7Zm9yKHZhciBmPWMubGVuZ3RoLGc9MDtnPGY7ZysrKWVb Y1tnXVswXV0uYWRkQ2xhc3MoZFtjW2ddWzFdXSl9ZnVuY3Rpb24gZml4Q29sdW1u V2lkdGgoYSxiKXt2YXIgYz1hLmNvbmZpZztpZihjLndpZHRoRml4ZWQpe3ZhciBk PSQoIjxjb2xncm91cD4iKTskKCJ0cjpmaXJzdCB0ZCIsYS50Qm9kaWVzWzBdKS5l YWNoKGZ1bmN0aW9uKCl7ZC5hcHBlbmQoJCgiPGNvbD4iKS5jc3MoIndpZHRoIiwk KHRoaXMpLndpZHRoKCkpKX0pLCQoYSkucHJlcGVuZChkKX19ZnVuY3Rpb24gdXBk YXRlSGVhZGVyU29ydENvdW50KGEsYil7Zm9yKHZhciBjPWEuY29uZmlnLGQ9Yi5s ZW5ndGgsZT0wO2U8ZDtlKyspe3ZhciBmPWJbZV0sZz1jLmhlYWRlckxpc3RbZlsw XV07Zy5jb3VudD1mWzFdLGcuY291bnQrK319ZnVuY3Rpb24gbXVsdGlzb3J0KHRh YmxlLHNvcnRMaXN0LGNhY2hlKXtpZih0YWJsZS5jb25maWcuZGVidWcpdmFyIHNv cnRUaW1lPW5ldyBEYXRlO2Zvcih2YXIgZHluYW1pY0V4cD0idmFyIHNvcnRXcmFw cGVyID0gZnVuY3Rpb24oYSxiKSB7IixsPXNvcnRMaXN0Lmxlbmd0aCxpPTA7aTxs O2krKyl7dmFyIGM9c29ydExpc3RbaV1bMF0sb3JkZXI9c29ydExpc3RbaV1bMV0s cz0idGV4dCI9PWdldENhY2hlZFNvcnRUeXBlKHRhYmxlLmNvbmZpZy5wYXJzZXJz LGMpPzA9PW9yZGVyPyJzb3J0VGV4dCI6InNvcnRUZXh0RGVzYyI6MD09b3JkZXI/ InNvcnROdW1lcmljIjoic29ydE51bWVyaWNEZXNjIixlPSJlIitpO2R5bmFtaWNF eHArPSJ2YXIgIitlKyIgPSAiK3MrIihhWyIrYysiXSxiWyIrYysiXSk7ICIsZHlu YW1pY0V4cCs9ImlmKCIrZSsiKSB7IHJldHVybiAiK2UrIjsgfSAiLGR5bmFtaWNF eHArPSJlbHNlIHsgIn12YXIgb3JnT3JkZXJDb2w9Y2FjaGUubm9ybWFsaXplZFsw XS5sZW5ndGgtMTtkeW5hbWljRXhwKz0icmV0dXJuIGFbIitvcmdPcmRlckNvbCsi XS1iWyIrb3JnT3JkZXJDb2wrIl07Ijtmb3IodmFyIGk9MDtpPGw7aSsrKWR5bmFt aWNFeHArPSJ9OyAiO3JldHVybiBkeW5hbWljRXhwKz0icmV0dXJuIDA7ICIsZHlu YW1pY0V4cCs9In07ICIsZXZhbChkeW5hbWljRXhwKSxjYWNoZS5ub3JtYWxpemVk LnNvcnQoc29ydFdyYXBwZXIpLHRhYmxlLmNvbmZpZy5kZWJ1ZyYmYmVuY2htYXJr KCJTb3J0aW5nIG9uICIrc29ydExpc3QudG9TdHJpbmcoKSsiIGFuZCBkaXIgIitv cmRlcisiIHRpbWU6Iixzb3J0VGltZSksY2FjaGV9ZnVuY3Rpb24gc29ydFRleHQo YSxiKXtyZXR1cm4gYTxiPy0xOmE+Yj8xOjB9ZnVuY3Rpb24gc29ydFRleHREZXNj KGEsYil7cmV0dXJuIGI8YT8tMTpiPmE/MTowfWZ1bmN0aW9uIHNvcnROdW1lcmlj KGEsYil7cmV0dXJuIGEtYn1mdW5jdGlvbiBzb3J0TnVtZXJpY0Rlc2MoYSxiKXty ZXR1cm4gYi1hfWZ1bmN0aW9uIGdldENhY2hlZFNvcnRUeXBlKGEsYil7cmV0dXJu IGFbYl0udHlwZX12YXIgcGFyc2Vycz1bXSx3aWRnZXRzPVtdO3RoaXMuZGVmYXVs dHM9e2Nzc0hlYWRlcjoiaGVhZGVyIixjc3NBc2M6ImhlYWRlclNvcnRVcCIsY3Nz RGVzYzoiaGVhZGVyU29ydERvd24iLHNvcnRJbml0aWFsT3JkZXI6ImFzYyIsc29y dE11bHRpU29ydEtleToic2hpZnRLZXkiLHNvcnRGb3JjZTpudWxsLHNvcnRBcHBl bmQ6bnVsbCx0ZXh0RXh0cmFjdGlvbjoic2ltcGxlIixwYXJzZXJzOnt9LHdpZGdl dHM6W10sd2lkZ2V0WmVicmE6e2NzczpbImV2ZW4iLCJvZGQiXX0saGVhZGVyczp7 fSx3aWR0aEZpeGVkOiExLGNhbmNlbFNlbGVjdGlvbjohMCxzb3J0TGlzdDpbXSxo ZWFkZXJMaXN0OltdLGRhdGVGb3JtYXQ6InVzIixkZWNpbWFsOiIuIixkZWJ1Zzoh MX0sdGhpcy5iZW5jaG1hcms9YmVuY2htYXJrLHRoaXMuY29uc3RydWN0PWZ1bmN0 aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZih0aGlzLnRIZWFk JiZ0aGlzLnRCb2RpZXMpe3ZhciBiLGMsZCxlLGYsZz0wLGg7dGhpcy5jb25maWc9 e30sZj0kLmV4dGVuZCh0aGlzLmNvbmZpZywkLnRhYmxlc29ydGVyLmRlZmF1bHRz LGEpLGI9JCh0aGlzKSxkPWJ1aWxkSGVhZGVycyh0aGlzKSx0aGlzLmNvbmZpZy5w YXJzZXJzPWJ1aWxkUGFyc2VyQ2FjaGUodGhpcyxkKSxlPWJ1aWxkQ2FjaGUodGhp cyk7dmFyIGk9W2YuY3NzRGVzYyxmLmNzc0FzY107Zml4Q29sdW1uV2lkdGgodGhp cyksZC5jbGljayhmdW5jdGlvbihhKXtiLnRyaWdnZXIoInNvcnRTdGFydCIpO3Zh ciBjPWJbMF0udEJvZGllc1swXSYmYlswXS50Qm9kaWVzWzBdLnJvd3MubGVuZ3Ro fHwwO2lmKCF0aGlzLnNvcnREaXNhYmxlZCYmYz4wKXt2YXIgZz0kKHRoaXMpLGg9 dGhpcy5jb2x1bW47aWYodGhpcy5vcmRlcj10aGlzLmNvdW50KyslMixhW2Yuc29y dE11bHRpU29ydEtleV0paWYoaXNWYWx1ZUluQXJyYXkoaCxmLnNvcnRMaXN0KSlm b3IodmFyIGo9MDtqPGYuc29ydExpc3QubGVuZ3RoO2orKyl7dmFyIGs9Zi5zb3J0 TGlzdFtqXSxsPWYuaGVhZGVyTGlzdFtrWzBdXTtrWzBdPT1oJiYobC5jb3VudD1r WzFdLGwuY291bnQrKyxrWzFdPWwuY291bnQlMil9ZWxzZSBmLnNvcnRMaXN0LnB1 c2goW2gsdGhpcy5vcmRlcl0pO2Vsc2V7aWYoZi5zb3J0TGlzdD1bXSxudWxsIT1m LnNvcnRGb3JjZSlmb3IodmFyIG09Zi5zb3J0Rm9yY2Usaj0wO2o8bS5sZW5ndGg7 aisrKW1bal1bMF0hPWgmJmYuc29ydExpc3QucHVzaChtW2pdKTtmLnNvcnRMaXN0 LnB1c2goW2gsdGhpcy5vcmRlcl0pfXJldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9u KCl7c2V0SGVhZGVyc0NzcyhiWzBdLGQsZi5zb3J0TGlzdCxpKSxhcHBlbmRUb1Rh YmxlKGJbMF0sbXVsdGlzb3J0KGJbMF0sZi5zb3J0TGlzdCxlKSl9LDEpLCExfX0p Lm1vdXNlZG93bihmdW5jdGlvbigpe2lmKGYuY2FuY2VsU2VsZWN0aW9uKXJldHVy biB0aGlzLm9uc2VsZWN0c3RhcnQ9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sITF9KSxi LmJpbmQoInVwZGF0ZSIsZnVuY3Rpb24oKXt0aGlzLmNvbmZpZy5wYXJzZXJzPWJ1 aWxkUGFyc2VyQ2FjaGUodGhpcyxkKSxlPWJ1aWxkQ2FjaGUodGhpcyl9KS5iaW5k KCJzb3J0b24iLGZ1bmN0aW9uKGEsYil7JCh0aGlzKS50cmlnZ2VyKCJzb3J0U3Rh cnQiKSxmLnNvcnRMaXN0PWI7dmFyIGM9Zi5zb3J0TGlzdDt1cGRhdGVIZWFkZXJT b3J0Q291bnQodGhpcyxjKSxzZXRIZWFkZXJzQ3NzKHRoaXMsZCxjLGkpLGFwcGVu ZFRvVGFibGUodGhpcyxtdWx0aXNvcnQodGhpcyxjLGUpKX0pLmJpbmQoImFwcGVu ZENhY2hlIixmdW5jdGlvbigpe2FwcGVuZFRvVGFibGUodGhpcyxlKX0pLmJpbmQo ImFwcGx5V2lkZ2V0SWQiLGZ1bmN0aW9uKGEsYil7Z2V0V2lkZ2V0QnlJZChiKS5m b3JtYXQodGhpcyl9KS5iaW5kKCJhcHBseVdpZGdldHMiLGZ1bmN0aW9uKCl7YXBw bHlXaWRnZXQodGhpcyl9KSwkLm1ldGFkYXRhJiYkKHRoaXMpLm1ldGFkYXRhKCkm JiQodGhpcykubWV0YWRhdGEoKS5zb3J0bGlzdCYmKGYuc29ydExpc3Q9JCh0aGlz KS5tZXRhZGF0YSgpLnNvcnRsaXN0KSxmLnNvcnRMaXN0Lmxlbmd0aD4wJiZiLnRy aWdnZXIoInNvcnRvbiIsW2Yuc29ydExpc3RdKSxhcHBseVdpZGdldCh0aGlzKX19 KX0sdGhpcy5hZGRQYXJzZXI9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXBhcnNlcnMu bGVuZ3RoLGM9ITAsZD0wO2Q8YjtkKyspcGFyc2Vyc1tkXS5pZC50b0xvd2VyQ2Fz ZSgpPT1hLmlkLnRvTG93ZXJDYXNlKCkmJihjPSExKTtjJiZwYXJzZXJzLnB1c2go YSl9LHRoaXMuYWRkV2lkZ2V0PWZ1bmN0aW9uKGEpe3dpZGdldHMucHVzaChhKX0s dGhpcy5mb3JtYXRGbG9hdD1mdW5jdGlvbihhKXt2YXIgYj1wYXJzZUZsb2F0KGEp O3JldHVybiBpc05hTihiKT8wOmJ9LHRoaXMuZm9ybWF0SW50PWZ1bmN0aW9uKGEp e3ZhciBiPXBhcnNlSW50KGEpO3JldHVybiBpc05hTihiKT8wOmJ9LHRoaXMuaXNE aWdpdD1mdW5jdGlvbihhLGIpe3ZhciBjPSJcXCIrYi5kZWNpbWFsLGQ9Ii8oXlsr XT8wKCIrYysiMCspPyQpfCheKFstK10/WzEtOV1bMC05XSopJCl8KF4oWy0rXT8o KDA/fFsxLTldWzAtOV0qKSIrYysiKDAqWzEtOV1bMC05XSopKSkkKXwoXlstK10/ WzEtOV0rWzAtOV0qIitjKyIwKyQpLyI7cmV0dXJuIFJlZ0V4cChkKS50ZXN0KCQu dHJpbShhKSl9LHRoaXMuY2xlYXJUYWJsZUJvZHk9ZnVuY3Rpb24oYSl7YS50Qm9k aWVzWzBdLmlubmVySFRNTD0iIn19fSksJC5mbi5leHRlbmQoe3RhYmxlc29ydGVy OiQudGFibGVzb3J0ZXIuY29uc3RydWN0fSk7dmFyIHRzPSQudGFibGVzb3J0ZXI7 dHMuYWRkUGFyc2VyKHtpZDoidGV4dCIsaXM6ZnVuY3Rpb24oYSl7cmV0dXJuITB9 LGZvcm1hdDpmdW5jdGlvbihhKXtyZXR1cm4gJC50cmltKGEudG9Mb3dlckNhc2Uo KSl9LHR5cGU6InRleHQifSksdHMuYWRkUGFyc2VyKHtpZDoiZGlnaXQiLGlzOmZ1 bmN0aW9uKGEsYil7dmFyIGM9Yi5jb25maWc7cmV0dXJuICQudGFibGVzb3J0ZXIu aXNEaWdpdChhLGMpfSxmb3JtYXQ6ZnVuY3Rpb24oYSl7cmV0dXJuICQudGFibGVz b3J0ZXIuZm9ybWF0RmxvYXQoYSl9LHR5cGU6Im51bWVyaWMifSksdHMuYWRkUGFy c2VyKHtpZDoibWV0YWRhdGEiLGlzOmZ1bmN0aW9uKGEpe3JldHVybiExfSxmb3Jt YXQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWIuY29uZmlnLGU9ZC5wYXJzZXJNZXRh ZGF0YU5hbWU/ZC5wYXJzZXJNZXRhZGF0YU5hbWU6InNvcnRWYWx1ZSI7cmV0dXJu ICQoYykubWV0YWRhdGEoKVtlXX0sdHlwZToibnVtZXJpYyJ9KSx0cy5hZGRXaWRn ZXQoe2lkOiJ6ZWJyYSIsZm9ybWF0OmZ1bmN0aW9uKGEpe2lmKGEuY29uZmlnLmRl YnVnKXZhciBiPW5ldyBEYXRlOyQoInRyOnZpc2libGUiLGEudEJvZGllc1swXSku ZmlsdGVyKCI6ZXZlbiIpLnJlbW92ZUNsYXNzKGEuY29uZmlnLndpZGdldFplYnJh LmNzc1sxXSkuYWRkQ2xhc3MoYS5jb25maWcud2lkZ2V0WmVicmEuY3NzWzBdKS5l bmQoKS5maWx0ZXIoIjpvZGQiKS5yZW1vdmVDbGFzcyhhLmNvbmZpZy53aWRnZXRa ZWJyYS5jc3NbMF0pLmFkZENsYXNzKGEuY29uZmlnLndpZGdldFplYnJhLmNzc1sx XSksYS5jb25maWcuZGVidWcmJiQudGFibGVzb3J0ZXIuYmVuY2htYXJrKCJBcHBs eWluZyBaZWJyYSB3aWRnZXQiLGIpfX0pfShqUXVlcnkpOw0KOy8vIGpzL2xpYi9q cXVlcnkvanF1ZXJ5LnRyZWV2aWV3LmpzCiFmdW5jdGlvbihhKXthLmV4dGVuZChh LmZuLHtzd2FwQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmZpbHRlcigi LiIrYSk7cmV0dXJuIHRoaXMuZmlsdGVyKCIuIitiKS5yZW1vdmVDbGFzcyhiKS5h ZGRDbGFzcyhhKSxjLnJlbW92ZUNsYXNzKGEpLmFkZENsYXNzKGIpLHRoaXN9LHJl cGxhY2VDbGFzczpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmZpbHRlcigiLiIr YSkucmVtb3ZlQ2xhc3MoYSkuYWRkQ2xhc3MoYikuZW5kKCl9LGhvdmVyQ2xhc3M6 ZnVuY3Rpb24oYil7cmV0dXJuIGI9Ynx8ImhvdmVyIix0aGlzLmhvdmVyKGZ1bmN0 aW9uKCl7YSh0aGlzKS5hZGRDbGFzcyhiKX0sZnVuY3Rpb24oKXthKHRoaXMpLnJl bW92ZUNsYXNzKGIpfSl9LGhlaWdodFRvZ2dsZTpmdW5jdGlvbihhLGIpe2E/dGhp cy5hbmltYXRlKHtoZWlnaHQ6InRvZ2dsZSJ9LGEsYik6dGhpcy5lYWNoKGZ1bmN0 aW9uKCl7alF1ZXJ5KHRoaXMpWyJibG9jayIhPWpRdWVyeSh0aGlzKS5jc3MoImRp c3BsYXkiKT8ic2hvdyI6ImhpZGUiXSgpLGImJmIuYXBwbHkodGhpcyxhcmd1bWVu dHMpfSl9LGhlaWdodEhpZGU6ZnVuY3Rpb24oYSxiKXthP3RoaXMuYW5pbWF0ZSh7 aGVpZ2h0OiJoaWRlIn0sYSxiKToodGhpcy5oaWRlKCksYiYmdGhpcy5lYWNoKGIp KX0scHJlcGFyZUJyYW5jaGVzOmZ1bmN0aW9uKGEpe3JldHVybiBhLnByZXJlbmRl cmVkfHwodGhpcy5maWx0ZXIoIjpsYXN0LWNoaWxkOm5vdCh1bCkiKS5hZGRDbGFz cyhiLmxhc3QpLHRoaXMuZmlsdGVyKChhLmNvbGxhcHNlZD8iIjoiLiIrYi5jbG9z ZWQpKyI6bm90KC4iK2Iub3BlbisiKSIpLmZpbmQoIj51bCIpLmhpZGUoKSksdGhp cy5maWx0ZXIoIjpoYXMoPnVsKSIpfSxhcHBseUNsYXNzZXM6ZnVuY3Rpb24oYyxk KXtpZih0aGlzLmZpbHRlcigiOmhhcyg+dWwpOm5vdCg6aGFzKD5hKSkiKS5maW5k KCI+c3BhbiIpLnVuYmluZCgiY2xpY2sudHJlZXZpZXciKS5iaW5kKCJjbGljay50 cmVldmlldyIsZnVuY3Rpb24oYil7ZC5hcHBseShhKHRoaXMpLm5leHQoKSl9KS5h ZGQoYSgiYSIsdGhpcykpLmhvdmVyQ2xhc3MoKSwhYy5wcmVyZW5kZXJlZCl7dGhp cy5maWx0ZXIoIjpoYXMoPnVsOmhpZGRlbikiKS5hZGRDbGFzcyhiLmV4cGFuZGFi bGUpLnJlcGxhY2VDbGFzcyhiLmxhc3QsYi5sYXN0RXhwYW5kYWJsZSksdGhpcy5u b3QoIjpoYXMoPnVsOmhpZGRlbikiKS5hZGRDbGFzcyhiLmNvbGxhcHNhYmxlKS5y ZXBsYWNlQ2xhc3MoYi5sYXN0LGIubGFzdENvbGxhcHNhYmxlKTt2YXIgZT10aGlz LmZpbmQoImRpdi4iK2IuaGl0YXJlYSk7ZS5sZW5ndGh8fChlPXRoaXMucHJlcGVu ZCgnPGRpdiBjbGFzcz0iJytiLmhpdGFyZWErJyIvPicpLmZpbmQoImRpdi4iK2Iu aGl0YXJlYSkpLGUucmVtb3ZlQ2xhc3MoKS5hZGRDbGFzcyhiLmhpdGFyZWEpLmVh Y2goZnVuY3Rpb24oKXt2YXIgYj0iIjthLmVhY2goYSh0aGlzKS5wYXJlbnQoKS5h dHRyKCJjbGFzcyIpLnNwbGl0KCIgIiksZnVuY3Rpb24oKXtiKz10aGlzKyItaGl0 YXJlYSAifSksYSh0aGlzKS5hZGRDbGFzcyhiKX0pfXRoaXMuZmluZCgiZGl2LiIr Yi5oaXRhcmVhKS5jbGljayhkKX0sdHJlZXZpZXc6ZnVuY3Rpb24oYyl7ZnVuY3Rp b24gZChjLGQpe2Z1bmN0aW9uIGYoZCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJu IGUuYXBwbHkoYSgiZGl2LiIrYi5oaXRhcmVhLGMpLmZpbHRlcihmdW5jdGlvbigp e3JldHVybiFkfHxhKHRoaXMpLnBhcmVudCgiLiIrZCkubGVuZ3RofSkpLCExfX1h KCJhOmVxKDApIixkKS5jbGljayhmKGIuY29sbGFwc2FibGUpKSxhKCJhOmVxKDEp IixkKS5jbGljayhmKGIuZXhwYW5kYWJsZSkpLGEoImE6ZXEoMikiLGQpLmNsaWNr KGYoKSl9ZnVuY3Rpb24gZSgpe2EodGhpcykucGFyZW50KCkuZmluZCgiPi5oaXRh cmVhIikuc3dhcENsYXNzKGIuY29sbGFwc2FibGVIaXRhcmVhLGIuZXhwYW5kYWJs ZUhpdGFyZWEpLnN3YXBDbGFzcyhiLmxhc3RDb2xsYXBzYWJsZUhpdGFyZWEsYi5s YXN0RXhwYW5kYWJsZUhpdGFyZWEpLmVuZCgpLnN3YXBDbGFzcyhiLmNvbGxhcHNh YmxlLGIuZXhwYW5kYWJsZSkuc3dhcENsYXNzKGIubGFzdENvbGxhcHNhYmxlLGIu bGFzdEV4cGFuZGFibGUpLmZpbmQoIj51bCIpLmhlaWdodFRvZ2dsZShjLmFuaW1h dGVkLGMudG9nZ2xlKSxjLnVuaXF1ZSYmYSh0aGlzKS5wYXJlbnQoKS5zaWJsaW5n cygpLmZpbmQoIj4uaGl0YXJlYSIpLnJlcGxhY2VDbGFzcyhiLmNvbGxhcHNhYmxl SGl0YXJlYSxiLmV4cGFuZGFibGVIaXRhcmVhKS5yZXBsYWNlQ2xhc3MoYi5sYXN0 Q29sbGFwc2FibGVIaXRhcmVhLGIubGFzdEV4cGFuZGFibGVIaXRhcmVhKS5lbmQo KS5yZXBsYWNlQ2xhc3MoYi5jb2xsYXBzYWJsZSxiLmV4cGFuZGFibGUpLnJlcGxh Y2VDbGFzcyhiLmxhc3RDb2xsYXBzYWJsZSxiLmxhc3RFeHBhbmRhYmxlKS5maW5k KCI+dWwiKS5oZWlnaHRIaWRlKGMuYW5pbWF0ZWQsYy50b2dnbGUpfWZ1bmN0aW9u IGYoKXtmdW5jdGlvbiBiKGEpe3JldHVybiBhPzE6MH12YXIgZD1bXTtpLmVhY2go ZnVuY3Rpb24oYixjKXtkW2JdPWEoYykuaXMoIjpoYXMoPnVsOnZpc2libGUpIik/ MTowfSksYS5jb29raWUoYy5jb29raWVJZCxkLmpvaW4oIiIpLGMuY29va2llT3B0 aW9ucyl9ZnVuY3Rpb24gZygpe3ZhciBiPWEuY29va2llKGMuY29va2llSWQpO2lm KGIpe3ZhciBkPWIuc3BsaXQoIiIpO2kuZWFjaChmdW5jdGlvbihiLGMpe2EoYyku ZmluZCgiPnVsIilbcGFyc2VJbnQoZFtiXSk/InNob3ciOiJoaWRlIl0oKX0pfX1p ZihjPWEuZXh0ZW5kKHtjb29raWVJZDoidHJlZXZpZXcifSxjKSxjLnRvZ2dsZSl7 dmFyIGg9Yy50b2dnbGU7Yy50b2dnbGU9ZnVuY3Rpb24oKXtyZXR1cm4gaC5hcHBs eShhKHRoaXMpLnBhcmVudCgpWzBdLGFyZ3VtZW50cyl9fXRoaXMuZGF0YSgidG9n Z2xlciIsZSksdGhpcy5hZGRDbGFzcygidHJlZXZpZXciKTt2YXIgaT10aGlzLmZp bmQoImxpIikucHJlcGFyZUJyYW5jaGVzKGMpO3N3aXRjaChjLnBlcnNpc3Qpe2Nh c2UiY29va2llIjp2YXIgaj1jLnRvZ2dsZTtjLnRvZ2dsZT1mdW5jdGlvbigpe2Yo KSxqJiZqLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sZygpO2JyZWFrO2Nhc2UibG9j YXRpb24iOnZhciBrPXRoaXMuZmluZCgiYSIpLmZpbHRlcihmdW5jdGlvbigpe3Jl dHVybiB0aGlzLmhyZWYudG9Mb3dlckNhc2UoKT09bG9jYXRpb24uaHJlZi50b0xv d2VyQ2FzZSgpfSk7aWYoay5sZW5ndGgpe3ZhciBsPWsuYWRkQ2xhc3MoInNlbGVj dGVkIikucGFyZW50cygidWwsIGxpIikuYWRkKGsubmV4dCgpKS5zaG93KCk7Yy5w cmVyZW5kZXJlZCYmbC5maWx0ZXIoImxpIikuc3dhcENsYXNzKGIuY29sbGFwc2Fi bGUsYi5leHBhbmRhYmxlKS5zd2FwQ2xhc3MoYi5sYXN0Q29sbGFwc2FibGUsYi5s YXN0RXhwYW5kYWJsZSkuZmluZCgiPi5oaXRhcmVhIikuc3dhcENsYXNzKGIuY29s bGFwc2FibGVIaXRhcmVhLGIuZXhwYW5kYWJsZUhpdGFyZWEpLnN3YXBDbGFzcyhi Lmxhc3RDb2xsYXBzYWJsZUhpdGFyZWEsYi5sYXN0RXhwYW5kYWJsZUhpdGFyZWEp fX1yZXR1cm4gaS5hcHBseUNsYXNzZXMoYyxlKSxjLmNvbnRyb2wmJihkKHRoaXMs Yy5jb250cm9sKSxhKGMuY29udHJvbCkuc2hvdygpKSx0aGlzfX0pLGEudHJlZXZp ZXc9e307dmFyIGI9YS50cmVldmlldy5jbGFzc2VzPXtvcGVuOiJvcGVuIixjbG9z ZWQ6ImNsb3NlZCIsZXhwYW5kYWJsZToiZXhwYW5kYWJsZSIsZXhwYW5kYWJsZUhp dGFyZWE6ImV4cGFuZGFibGUtaGl0YXJlYSIsbGFzdEV4cGFuZGFibGVIaXRhcmVh OiJsYXN0RXhwYW5kYWJsZS1oaXRhcmVhIixjb2xsYXBzYWJsZToiY29sbGFwc2Fi bGUiLGNvbGxhcHNhYmxlSGl0YXJlYToiY29sbGFwc2FibGUtaGl0YXJlYSIsbGFz dENvbGxhcHNhYmxlSGl0YXJlYToibGFzdENvbGxhcHNhYmxlLWhpdGFyZWEiLGxh c3RDb2xsYXBzYWJsZToibGFzdENvbGxhcHNhYmxlIixsYXN0RXhwYW5kYWJsZToi bGFzdEV4cGFuZGFibGUiLGxhc3Q6Imxhc3QiLGhpdGFyZWE6ImhpdGFyZWEifX0o alF1ZXJ5KTsNCjsvLyBqcy9saWIvbW9kZXJuaXpyLmpzCndpbmRvdy5Nb2Rlcm5p enI9ZnVuY3Rpb24oYSxiLGMpe2Z1bmN0aW9uIGQoYSl7ci5jc3NUZXh0PWF9ZnVu Y3Rpb24gZShhLGIpe3JldHVybiBkKHYuam9pbihhKyI7IikrKGJ8fCIiKSl9ZnVu Y3Rpb24gZihhLGIpe3JldHVybiB0eXBlb2YgYT09PWJ9ZnVuY3Rpb24gZyhhLGIp e3JldHVybiEhfigiIithKS5pbmRleE9mKGIpfWZ1bmN0aW9uIGgoYSxiKXtmb3Io dmFyIGQgaW4gYSl7dmFyIGU9YVtkXTtpZighZyhlLCItIikmJnJbZV0hPT1jKXJl dHVybiJwZngiIT1ifHxlfXJldHVybiExfWZ1bmN0aW9uIGkoYSxiLGQpe2Zvcih2 YXIgZSBpbiBhKXt2YXIgZz1iW2FbZV1dO2lmKGchPT1jKXJldHVybiBkPT09ITE/ YVtlXTpmKGcsImZ1bmN0aW9uIik/Zy5iaW5kKGR8fGIpOmd9cmV0dXJuITF9ZnVu Y3Rpb24gaihhLGIsYyl7dmFyIGQ9YS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSth LnNsaWNlKDEpLGU9KGErIiAiK3guam9pbihkKyIgIikrZCkuc3BsaXQoIiAiKTty ZXR1cm4gZihiLCJzdHJpbmciKXx8ZihiLCJ1bmRlZmluZWQiKT9oKGUsYik6KGU9 KGErIiAiK3kuam9pbihkKyIgIikrZCkuc3BsaXQoIiAiKSxpKGUsYixjKSl9ZnVu Y3Rpb24gaygpe20uaW5wdXQ9ZnVuY3Rpb24oYyl7Zm9yKHZhciBkPTAsZT1jLmxl bmd0aDtkPGU7ZCsrKUNbY1tkXV09ISEoY1tkXWluIHMpO3JldHVybiBDLmxpc3Qm JihDLmxpc3Q9ISghYi5jcmVhdGVFbGVtZW50KCJkYXRhbGlzdCIpfHwhYS5IVE1M RGF0YUxpc3RFbGVtZW50KSksQ30oImF1dG9jb21wbGV0ZSBhdXRvZm9jdXMgbGlz dCBwbGFjZWhvbGRlciBtYXggbWluIG11bHRpcGxlIHBhdHRlcm4gcmVxdWlyZWQg c3RlcCIuc3BsaXQoIiAiKSksbS5pbnB1dHR5cGVzPWZ1bmN0aW9uKGEpe2Zvcih2 YXIgZD0wLGUsZixnLGg9YS5sZW5ndGg7ZDxoO2QrKylzLnNldEF0dHJpYnV0ZSgi dHlwZSIsZj1hW2RdKSxlPSJ0ZXh0IiE9PXMudHlwZSxlJiYocy52YWx1ZT10LHMu c3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7dmlzaWJpbGl0eTpoaWRk ZW47IiwvXnJhbmdlJC8udGVzdChmKSYmcy5zdHlsZS5XZWJraXRBcHBlYXJhbmNl IT09Yz8oby5hcHBlbmRDaGlsZChzKSxnPWIuZGVmYXVsdFZpZXcsZT1nLmdldENv bXB1dGVkU3R5bGUmJiJ0ZXh0ZmllbGQiIT09Zy5nZXRDb21wdXRlZFN0eWxlKHMs bnVsbCkuV2Via2l0QXBwZWFyYW5jZSYmMCE9PXMub2Zmc2V0SGVpZ2h0LG8ucmVt b3ZlQ2hpbGQocykpOi9eKHNlYXJjaHx0ZWwpJC8udGVzdChmKXx8KGU9L14odXJs fGVtYWlsKSQvLnRlc3QoZik/cy5jaGVja1ZhbGlkaXR5JiZzLmNoZWNrVmFsaWRp dHkoKT09PSExOnMudmFsdWUhPXQpKSxCW2FbZF1dPSEhZTtyZXR1cm4gQn0oInNl YXJjaCB0ZWwgdXJsIGVtYWlsIGRhdGV0aW1lIGRhdGUgbW9udGggd2VlayB0aW1l IGRhdGV0aW1lLWxvY2FsIG51bWJlciByYW5nZSBjb2xvciIuc3BsaXQoIiAiKSl9 dmFyIGw9IjIuOC4zIixtPXt9LG49ITAsbz1iLmRvY3VtZW50RWxlbWVudCxwPSJt b2Rlcm5penIiLHE9Yi5jcmVhdGVFbGVtZW50KHApLHI9cS5zdHlsZSxzPWIuY3Jl YXRlRWxlbWVudCgiaW5wdXQiKSx0PSI6KSIsdT17fS50b1N0cmluZyx2PSIgLXdl YmtpdC0gLW1vei0gLW8tIC1tcy0gIi5zcGxpdCgiICIpLHc9IldlYmtpdCBNb3og TyBtcyIseD13LnNwbGl0KCIgIikseT13LnRvTG93ZXJDYXNlKCkuc3BsaXQoIiAi KSx6PXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIn0sQT17fSxCPXt9 LEM9e30sRD1bXSxFPUQuc2xpY2UsRixHPWZ1bmN0aW9uKGEsYyxkLGUpe3ZhciBm LGcsaCxpLGo9Yi5jcmVhdGVFbGVtZW50KCJkaXYiKSxrPWIuYm9keSxsPWt8fGIu Y3JlYXRlRWxlbWVudCgiYm9keSIpO2lmKHBhcnNlSW50KGQsMTApKXdoaWxlKGQt LSloPWIuY3JlYXRlRWxlbWVudCgiZGl2IiksaC5pZD1lP2VbZF06cCsoZCsxKSxq LmFwcGVuZENoaWxkKGgpO3JldHVybiBmPVsiJiMxNzM7IiwnPHN0eWxlIGlkPSJz JyxwLCciPicsYSwiPC9zdHlsZT4iXS5qb2luKCIiKSxqLmlkPXAsKGs/ajpsKS5p bm5lckhUTUwrPWYsbC5hcHBlbmRDaGlsZChqKSxrfHwobC5zdHlsZS5iYWNrZ3Jv dW5kPSIiLGwuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsaT1vLnN0eWxlLm92ZXJm bG93LG8uc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsby5hcHBlbmRDaGlsZChsKSks Zz1jKGosYSksaz9qLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaik6KGwucGFyZW50 Tm9kZS5yZW1vdmVDaGlsZChsKSxvLnN0eWxlLm92ZXJmbG93PWkpLCEhZ30sSD1m dW5jdGlvbihiKXt2YXIgYz1hLm1hdGNoTWVkaWF8fGEubXNNYXRjaE1lZGlhO2lm KGMpcmV0dXJuIGMoYikmJmMoYikubWF0Y2hlc3x8ITE7dmFyIGQ7cmV0dXJuIEco IkBtZWRpYSAiK2IrIiB7ICMiK3ArIiB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgfSB9 IixmdW5jdGlvbihiKXtkPSJhYnNvbHV0ZSI9PShhLmdldENvbXB1dGVkU3R5bGU/ Z2V0Q29tcHV0ZWRTdHlsZShiLG51bGwpOmIuY3VycmVudFN0eWxlKS5wb3NpdGlv bn0pLGR9LEk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGEsZSl7ZT1lfHxiLmNyZWF0 ZUVsZW1lbnQoZFthXXx8ImRpdiIpLGE9Im9uIithO3ZhciBnPWEgaW4gZTtyZXR1 cm4gZ3x8KGUuc2V0QXR0cmlidXRlfHwoZT1iLmNyZWF0ZUVsZW1lbnQoImRpdiIp KSxlLnNldEF0dHJpYnV0ZSYmZS5yZW1vdmVBdHRyaWJ1dGUmJihlLnNldEF0dHJp YnV0ZShhLCIiKSxnPWYoZVthXSwiZnVuY3Rpb24iKSxmKGVbYV0sInVuZGVmaW5l ZCIpfHwoZVthXT1jKSxlLnJlbW92ZUF0dHJpYnV0ZShhKSkpLGU9bnVsbCxnfXZh ciBkPXtzZWxlY3Q6ImlucHV0IixjaGFuZ2U6ImlucHV0IixzdWJtaXQ6ImZvcm0i LHJlc2V0OiJmb3JtIixlcnJvcjoiaW1nIixsb2FkOiJpbWciLGFib3J0OiJpbWci fTtyZXR1cm4gYX0oKSxKPXt9Lmhhc093blByb3BlcnR5LEs7Sz1mKEosInVuZGVm aW5lZCIpfHxmKEouY2FsbCwidW5kZWZpbmVkIik/ZnVuY3Rpb24oYSxiKXtyZXR1 cm4gYiBpbiBhJiZmKGEuY29uc3RydWN0b3IucHJvdG90eXBlW2JdLCJ1bmRlZmlu ZWQiKX06ZnVuY3Rpb24oYSxiKXtyZXR1cm4gSi5jYWxsKGEsYil9LEZ1bmN0aW9u LnByb3RvdHlwZS5iaW5kfHwoRnVuY3Rpb24ucHJvdG90eXBlLmJpbmQ9ZnVuY3Rp b24gTShhKXt2YXIgYj10aGlzO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBiKXRocm93 IG5ldyBUeXBlRXJyb3I7dmFyIGM9RS5jYWxsKGFyZ3VtZW50cywxKSxkPWZ1bmN0 aW9uKCl7aWYodGhpcyBpbnN0YW5jZW9mIGQpe3ZhciBlPWZ1bmN0aW9uKCl7fTtl LnByb3RvdHlwZT1iLnByb3RvdHlwZTt2YXIgZj1uZXcgZSxnPWIuYXBwbHkoZixj LmNvbmNhdChFLmNhbGwoYXJndW1lbnRzKSkpO3JldHVybiBPYmplY3QoZyk9PT1n P2c6Zn1yZXR1cm4gYi5hcHBseShhLGMuY29uY2F0KEUuY2FsbChhcmd1bWVudHMp KSl9O3JldHVybiBkfSksQS5mbGV4Ym94PWZ1bmN0aW9uKCl7cmV0dXJuIGooImZs ZXhXcmFwIil9LEEuZmxleGJveGxlZ2FjeT1mdW5jdGlvbigpe3JldHVybiBqKCJi b3hEaXJlY3Rpb24iKX0sQS5jYW52YXM9ZnVuY3Rpb24oKXt2YXIgYT1iLmNyZWF0 ZUVsZW1lbnQoImNhbnZhcyIpO3JldHVybiEoIWEuZ2V0Q29udGV4dHx8IWEuZ2V0 Q29udGV4dCgiMmQiKSl9LEEuY2FudmFzdGV4dD1mdW5jdGlvbigpe3JldHVybiEo IW0uY2FudmFzfHwhZihiLmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRl eHQoIjJkIikuZmlsbFRleHQsImZ1bmN0aW9uIikpfSxBLndlYmdsPWZ1bmN0aW9u KCl7cmV0dXJuISFhLldlYkdMUmVuZGVyaW5nQ29udGV4dH0sQS50b3VjaD1mdW5j dGlvbigpe3ZhciBjO3JldHVybiJvbnRvdWNoc3RhcnQiaW4gYXx8YS5Eb2N1bWVu dFRvdWNoJiZiIGluc3RhbmNlb2YgRG9jdW1lbnRUb3VjaD9jPSEwOkcoWyJAbWVk aWEgKCIsdi5qb2luKCJ0b3VjaC1lbmFibGVkKSwoIikscCwiKSIsInsjbW9kZXJu aXpye3RvcDo5cHg7cG9zaXRpb246YWJzb2x1dGV9fSJdLmpvaW4oIiIpLGZ1bmN0 aW9uKGEpe2M9OT09PWEub2Zmc2V0VG9wfSksY30sQS5nZW9sb2NhdGlvbj1mdW5j dGlvbigpe3JldHVybiJnZW9sb2NhdGlvbiJpbiBuYXZpZ2F0b3J9LEEucG9zdG1l c3NhZ2U9ZnVuY3Rpb24oKXtyZXR1cm4hIWEucG9zdE1lc3NhZ2V9LEEud2Vic3Fs ZGF0YWJhc2U9ZnVuY3Rpb24oKXtyZXR1cm4hIWEub3BlbkRhdGFiYXNlfSxBLmlu ZGV4ZWREQj1mdW5jdGlvbigpe3JldHVybiEhaigiaW5kZXhlZERCIixhKX0sQS5o YXNoY2hhbmdlPWZ1bmN0aW9uKCl7cmV0dXJuIEkoImhhc2hjaGFuZ2UiLGEpJiYo Yi5kb2N1bWVudE1vZGU9PT1jfHxiLmRvY3VtZW50TW9kZT43KX0sQS5oaXN0b3J5 PWZ1bmN0aW9uKCl7cmV0dXJuISghYS5oaXN0b3J5fHwhaGlzdG9yeS5wdXNoU3Rh dGUpfSxBLmRyYWdhbmRkcm9wPWZ1bmN0aW9uKCl7dmFyIGE9Yi5jcmVhdGVFbGVt ZW50KCJkaXYiKTtyZXR1cm4iZHJhZ2dhYmxlImluIGF8fCJvbmRyYWdzdGFydCJp biBhJiYib25kcm9wImluIGF9LEEud2Vic29ja2V0cz1mdW5jdGlvbigpe3JldHVy biJXZWJTb2NrZXQiaW4gYXx8Ik1veldlYlNvY2tldCJpbiBhfSxBLnJnYmE9ZnVu Y3Rpb24oKXtyZXR1cm4gZCgiYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE1MCwyNTUs MTUwLC41KSIpLGcoci5iYWNrZ3JvdW5kQ29sb3IsInJnYmEiKX0sQS5oc2xhPWZ1 bmN0aW9uKCl7cmV0dXJuIGQoImJhY2tncm91bmQtY29sb3I6aHNsYSgxMjAsNDAl LDEwMCUsLjUpIiksZyhyLmJhY2tncm91bmRDb2xvciwicmdiYSIpfHxnKHIuYmFj a2dyb3VuZENvbG9yLCJoc2xhIil9LEEubXVsdGlwbGViZ3M9ZnVuY3Rpb24oKXty ZXR1cm4gZCgiYmFja2dyb3VuZDp1cmwoaHR0cHM6Ly8pLHVybChodHRwczovLyks cmVkIHVybChodHRwczovLykiKSwvKHVybFxzKlwoLio/KXszfS8udGVzdChyLmJh Y2tncm91bmQpfSxBLmJhY2tncm91bmRzaXplPWZ1bmN0aW9uKCl7cmV0dXJuIGoo ImJhY2tncm91bmRTaXplIil9LEEuYm9yZGVyaW1hZ2U9ZnVuY3Rpb24oKXtyZXR1 cm4gaigiYm9yZGVySW1hZ2UiKX0sQS5ib3JkZXJyYWRpdXM9ZnVuY3Rpb24oKXty ZXR1cm4gaigiYm9yZGVyUmFkaXVzIil9LEEuYm94c2hhZG93PWZ1bmN0aW9uKCl7 cmV0dXJuIGooImJveFNoYWRvdyIpfSxBLnRleHRzaGFkb3c9ZnVuY3Rpb24oKXty ZXR1cm4iIj09PWIuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUudGV4dFNoYWRv d30sQS5vcGFjaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIGUoIm9wYWNpdHk6LjU1Iiks L14wLjU1JC8udGVzdChyLm9wYWNpdHkpfSxBLmNzc2FuaW1hdGlvbnM9ZnVuY3Rp b24oKXtyZXR1cm4gaigiYW5pbWF0aW9uTmFtZSIpfSxBLmNzc2NvbHVtbnM9ZnVu Y3Rpb24oKXtyZXR1cm4gaigiY29sdW1uQ291bnQiKX0sQS5jc3NncmFkaWVudHM9 ZnVuY3Rpb24oKXt2YXIgYT0iYmFja2dyb3VuZC1pbWFnZToiLGI9ImdyYWRpZW50 KGxpbmVhcixsZWZ0IHRvcCxyaWdodCBib3R0b20sZnJvbSgjOWY5KSx0byh3aGl0 ZSkpOyIsYz0ibGluZWFyLWdyYWRpZW50KGxlZnQgdG9wLCM5ZjksIHdoaXRlKTsi O3JldHVybiBkKChhKyItd2Via2l0LSAiLnNwbGl0KCIgIikuam9pbihiK2EpK3Yu am9pbihjK2EpKS5zbGljZSgwLC1hLmxlbmd0aCkpLGcoci5iYWNrZ3JvdW5kSW1h Z2UsImdyYWRpZW50Iil9LEEuY3NzcmVmbGVjdGlvbnM9ZnVuY3Rpb24oKXtyZXR1 cm4gaigiYm94UmVmbGVjdCIpfSxBLmNzc3RyYW5zZm9ybXM9ZnVuY3Rpb24oKXty ZXR1cm4hIWooInRyYW5zZm9ybSIpfSxBLmNzc3RyYW5zZm9ybXMzZD1mdW5jdGlv bigpe3ZhciBhPSEhaigicGVyc3BlY3RpdmUiKTtyZXR1cm4gYSYmIndlYmtpdFBl cnNwZWN0aXZlImluIG8uc3R5bGUmJkcoIkBtZWRpYSAodHJhbnNmb3JtLTNkKSwo LXdlYmtpdC10cmFuc2Zvcm0tM2QpeyNtb2Rlcm5penJ7bGVmdDo5cHg7cG9zaXRp b246YWJzb2x1dGU7aGVpZ2h0OjNweDt9fSIsZnVuY3Rpb24oYixjKXthPTk9PT1i Lm9mZnNldExlZnQmJjM9PT1iLm9mZnNldEhlaWdodH0pLGF9LEEuY3NzdHJhbnNp dGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gaigidHJhbnNpdGlvbiIpfSxBLmZvbnRm YWNlPWZ1bmN0aW9uKCl7dmFyIGE7cmV0dXJuIEcoJ0Bmb250LWZhY2Uge2ZvbnQt ZmFtaWx5OiJmb250IjtzcmM6dXJsKCJodHRwczovLyIpfScsZnVuY3Rpb24oYyxk KXt2YXIgZT1iLmdldEVsZW1lbnRCeUlkKCJzbW9kZXJuaXpyIiksZj1lLnNoZWV0 fHxlLnN0eWxlU2hlZXQsZz1mP2YuY3NzUnVsZXMmJmYuY3NzUnVsZXNbMF0/Zi5j c3NSdWxlc1swXS5jc3NUZXh0OmYuY3NzVGV4dHx8IiI6IiI7YT0vc3JjL2kudGVz dChnKSYmMD09PWcuaW5kZXhPZihkLnNwbGl0KCIgIilbMF0pfSksYX0sQS5nZW5l cmF0ZWRjb250ZW50PWZ1bmN0aW9uKCl7dmFyIGE7cmV0dXJuIEcoWyIjIixwLCJ7 Zm9udDowLzAgYX0jIixwLCc6YWZ0ZXJ7Y29udGVudDoiJyx0LCciO3Zpc2liaWxp dHk6aGlkZGVuO2ZvbnQ6M3B4LzEgYX0nXS5qb2luKCIiKSxmdW5jdGlvbihiKXth PWIub2Zmc2V0SGVpZ2h0Pj0zfSksYX0sQS52aWRlbz1mdW5jdGlvbigpe3ZhciBh PWIuY3JlYXRlRWxlbWVudCgidmlkZW8iKSxjPSExO3RyeXsoYz0hIWEuY2FuUGxh eVR5cGUpJiYoYz1uZXcgQm9vbGVhbihjKSxjLm9nZz1hLmNhblBsYXlUeXBlKCd2 aWRlby9vZ2c7IGNvZGVjcz0idGhlb3JhIicpLnJlcGxhY2UoL15ubyQvLCIiKSxj LmgyNjQ9YS5jYW5QbGF5VHlwZSgndmlkZW8vbXA0OyBjb2RlY3M9ImF2YzEuNDJF MDFFIicpLnJlcGxhY2UoL15ubyQvLCIiKSxjLndlYm09YS5jYW5QbGF5VHlwZSgn dmlkZW8vd2VibTsgY29kZWNzPSJ2cDgsIHZvcmJpcyInKS5yZXBsYWNlKC9ebm8k LywiIikpfWNhdGNoKGQpe31yZXR1cm4gY30sQS5hdWRpbz1mdW5jdGlvbigpe3Zh ciBhPWIuY3JlYXRlRWxlbWVudCgiYXVkaW8iKSxjPSExO3RyeXsoYz0hIWEuY2Fu UGxheVR5cGUpJiYoYz1uZXcgQm9vbGVhbihjKSxjLm9nZz1hLmNhblBsYXlUeXBl KCdhdWRpby9vZ2c7IGNvZGVjcz0idm9yYmlzIicpLnJlcGxhY2UoL15ubyQvLCIi KSxjLm1wMz1hLmNhblBsYXlUeXBlKCJhdWRpby9tcGVnOyIpLnJlcGxhY2UoL15u byQvLCIiKSxjLndhdj1hLmNhblBsYXlUeXBlKCdhdWRpby93YXY7IGNvZGVjcz0i MSInKS5yZXBsYWNlKC9ebm8kLywiIiksYy5tNGE9KGEuY2FuUGxheVR5cGUoImF1 ZGlvL3gtbTRhOyIpfHxhLmNhblBsYXlUeXBlKCJhdWRpby9hYWM7IikpLnJlcGxh Y2UoL15ubyQvLCIiKSl9Y2F0Y2goZCl7fXJldHVybiBjfSxBLmxvY2Fsc3RvcmFn ZT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbG9jYWxTdG9yYWdlLnNldEl0ZW0ocCxw KSxsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShwKSwhMH1jYXRjaChhKXtyZXR1cm4h MX19LEEuc2Vzc2lvbnN0b3JhZ2U9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHNlc3Np b25TdG9yYWdlLnNldEl0ZW0ocCxwKSxzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVt KHApLCEwfWNhdGNoKGEpe3JldHVybiExfX0sQS53ZWJ3b3JrZXJzPWZ1bmN0aW9u KCl7cmV0dXJuISFhLldvcmtlcn0sQS5hcHBsaWNhdGlvbmNhY2hlPWZ1bmN0aW9u KCl7cmV0dXJuISFhLmFwcGxpY2F0aW9uQ2FjaGV9LEEuc3ZnPWZ1bmN0aW9uKCl7 cmV0dXJuISFiLmNyZWF0ZUVsZW1lbnROUyYmISFiLmNyZWF0ZUVsZW1lbnROUyh6 LnN2Zywic3ZnIikuY3JlYXRlU1ZHUmVjdH0sQS5pbmxpbmVzdmc9ZnVuY3Rpb24o KXt2YXIgYT1iLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBhLmlubmVySFRN TD0iPHN2Zy8+IiwoYS5maXJzdENoaWxkJiZhLmZpcnN0Q2hpbGQubmFtZXNwYWNl VVJJKT09ei5zdmd9LEEuc21pbD1mdW5jdGlvbigpe3JldHVybiEhYi5jcmVhdGVF bGVtZW50TlMmJi9TVkdBbmltYXRlLy50ZXN0KHUuY2FsbChiLmNyZWF0ZUVsZW1l bnROUyh6LnN2ZywiYW5pbWF0ZSIpKSl9LEEuc3ZnY2xpcHBhdGhzPWZ1bmN0aW9u KCl7cmV0dXJuISFiLmNyZWF0ZUVsZW1lbnROUyYmL1NWR0NsaXBQYXRoLy50ZXN0 KHUuY2FsbChiLmNyZWF0ZUVsZW1lbnROUyh6LnN2ZywiY2xpcFBhdGgiKSkpfTtm b3IodmFyIEwgaW4gQSlLKEEsTCkmJihGPUwudG9Mb3dlckNhc2UoKSxtW0ZdPUFb TF0oKSxELnB1c2goKG1bRl0/IiI6Im5vLSIpK0YpKTtyZXR1cm4gbS5pbnB1dHx8 aygpLG0uYWRkVGVzdD1mdW5jdGlvbihhLGIpe2lmKCJvYmplY3QiPT10eXBlb2Yg YSlmb3IodmFyIGQgaW4gYSlLKGEsZCkmJm0uYWRkVGVzdChkLGFbZF0pO2Vsc2V7 aWYoYT1hLnRvTG93ZXJDYXNlKCksbVthXSE9PWMpcmV0dXJuIG07Yj0iZnVuY3Rp b24iPT10eXBlb2YgYj9iKCk6YiwidW5kZWZpbmVkIiE9dHlwZW9mIG4mJm4mJihv LmNsYXNzTmFtZSs9IiAiKyhiPyIiOiJuby0iKSthKSxtW2FdPWJ9cmV0dXJuIG19 LGQoIiIpLHE9cz1udWxsLGZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhhLGIpe3Zh ciBjPWEuY3JlYXRlRWxlbWVudCgicCIpLGQ9YS5nZXRFbGVtZW50c0J5VGFnTmFt ZSgiaGVhZCIpWzBdfHxhLmRvY3VtZW50RWxlbWVudDtyZXR1cm4gYy5pbm5lckhU TUw9Ing8c3R5bGU+IitiKyI8L3N0eWxlPiIsZC5pbnNlcnRCZWZvcmUoYy5sYXN0 Q2hpbGQsZC5maXJzdENoaWxkKX1mdW5jdGlvbiBkKCl7dmFyIGE9cy5lbGVtZW50 cztyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGE/YS5zcGxpdCgiICIpOmF9ZnVuY3Rp b24gZShhKXt2YXIgYj1xW2Fbb11dO3JldHVybiBifHwoYj17fSxwKyssYVtvXT1w LHFbcF09YiksYn1mdW5jdGlvbiBmKGEsYyxkKXtpZihjfHwoYz1iKSxyKXJldHVy biBjLmNyZWF0ZUVsZW1lbnQoYSk7ZHx8KGQ9ZShjKSk7dmFyIGY7cmV0dXJuIGY9 ZC5jYWNoZVthXT9kLmNhY2hlW2FdLmNsb25lTm9kZSgpOm0udGVzdChhKT8oZC5j YWNoZVthXT1kLmNyZWF0ZUVsZW0oYSkpLmNsb25lTm9kZSgpOmQuY3JlYXRlRWxl bShhKSwhZi5jYW5IYXZlQ2hpbGRyZW58fGwudGVzdChhKXx8Zi50YWdVcm4/Zjpk LmZyYWcuYXBwZW5kQ2hpbGQoZil9ZnVuY3Rpb24gZyhhLGMpe2lmKGF8fChhPWIp LHIpcmV0dXJuIGEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO2M9Y3x8ZShhKTtm b3IodmFyIGY9Yy5mcmFnLmNsb25lTm9kZSgpLGc9MCxoPWQoKSxpPWgubGVuZ3Ro O2c8aTtnKyspZi5jcmVhdGVFbGVtZW50KGhbZ10pO3JldHVybiBmfWZ1bmN0aW9u IGgoYSxiKXtiLmNhY2hlfHwoYi5jYWNoZT17fSxiLmNyZWF0ZUVsZW09YS5jcmVh dGVFbGVtZW50LGIuY3JlYXRlRnJhZz1hLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQs Yi5mcmFnPWIuY3JlYXRlRnJhZygpKSxhLmNyZWF0ZUVsZW1lbnQ9ZnVuY3Rpb24o Yyl7cmV0dXJuIHMuc2hpdk1ldGhvZHM/ZihjLGEsYik6Yi5jcmVhdGVFbGVtKGMp fSxhLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQ9RnVuY3Rpb24oImgsZiIsInJldHVy biBmdW5jdGlvbigpe3ZhciBuPWYuY2xvbmVOb2RlKCksYz1uLmNyZWF0ZUVsZW1l bnQ7aC5zaGl2TWV0aG9kcyYmKCIrZCgpLmpvaW4oKS5yZXBsYWNlKC9bXHdcLV0r L2csZnVuY3Rpb24oYSl7cmV0dXJuIGIuY3JlYXRlRWxlbShhKSxiLmZyYWcuY3Jl YXRlRWxlbWVudChhKSwnYygiJythKyciKSd9KSsiKTtyZXR1cm4gbn0iKShzLGIu ZnJhZyl9ZnVuY3Rpb24gaShhKXthfHwoYT1iKTt2YXIgZD1lKGEpO3JldHVybiFz LnNoaXZDU1N8fG58fGQuaGFzQ1NTfHwoZC5oYXNDU1M9ISFjKGEsImFydGljbGUs YXNpZGUsZGlhbG9nLGZpZ2NhcHRpb24sZmlndXJlLGZvb3RlcixoZWFkZXIsaGdy b3VwLG1haW4sbmF2LHNlY3Rpb257ZGlzcGxheTpibG9ja31tYXJre2JhY2tncm91 bmQ6I0ZGMDtjb2xvcjojMDAwfXRlbXBsYXRle2Rpc3BsYXk6bm9uZX0iKSkscnx8 aChhLGQpLGF9dmFyIGo9IjMuNy4wIixrPWEuaHRtbDV8fHt9LGw9L148fF4oPzpi dXR0b258bWFwfHNlbGVjdHx0ZXh0YXJlYXxvYmplY3R8aWZyYW1lfG9wdGlvbnxv cHRncm91cCkkL2ksbT0vXig/OmF8Ynxjb2RlfGRpdnxmaWVsZHNldHxoMXxoMnxo M3xoNHxoNXxoNnxpfGxhYmVsfGxpfG9sfHB8cXxzcGFufHN0cm9uZ3xzdHlsZXx0 YWJsZXx0Ym9keXx0ZHx0aHx0cnx1bCkkL2ksbixvPSJfaHRtbDVzaGl2IixwPTAs cT17fSxyOyFmdW5jdGlvbigpe3RyeXt2YXIgYT1iLmNyZWF0ZUVsZW1lbnQoImEi KTthLmlubmVySFRNTD0iPHh5ej48L3h5ej4iLG49ImhpZGRlbiJpbiBhLHI9MT09 YS5jaGlsZE5vZGVzLmxlbmd0aHx8ZnVuY3Rpb24oKXtiLmNyZWF0ZUVsZW1lbnQo ImEiKTt2YXIgYT1iLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtyZXR1cm4idW5k ZWZpbmVkIj09dHlwZW9mIGEuY2xvbmVOb2RlfHwidW5kZWZpbmVkIj09dHlwZW9m IGEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudHx8InVuZGVmaW5lZCI9PXR5cGVvZiBh LmNyZWF0ZUVsZW1lbnR9KCl9Y2F0Y2goYyl7bj0hMCxyPSEwfX0oKTt2YXIgcz17 ZWxlbWVudHM6ay5lbGVtZW50c3x8ImFiYnIgYXJ0aWNsZSBhc2lkZSBhdWRpbyBi ZGkgY2FudmFzIGRhdGEgZGF0YWxpc3QgZGV0YWlscyBkaWFsb2cgZmlnY2FwdGlv biBmaWd1cmUgZm9vdGVyIGhlYWRlciBoZ3JvdXAgbWFpbiBtYXJrIG1ldGVyIG5h diBvdXRwdXQgcHJvZ3Jlc3Mgc2VjdGlvbiBzdW1tYXJ5IHRlbXBsYXRlIHRpbWUg dmlkZW8iLHZlcnNpb246aixzaGl2Q1NTOmsuc2hpdkNTUyE9PSExLHN1cHBvcnRz VW5rbm93bkVsZW1lbnRzOnIsc2hpdk1ldGhvZHM6ay5zaGl2TWV0aG9kcyE9PSEx LHR5cGU6ImRlZmF1bHQiLHNoaXZEb2N1bWVudDppLGNyZWF0ZUVsZW1lbnQ6Zixj cmVhdGVEb2N1bWVudEZyYWdtZW50Omd9O2EuaHRtbDU9cyxpKGIpfSh0aGlzLGIp LG0uX3ZlcnNpb249bCxtLl9wcmVmaXhlcz12LG0uX2RvbVByZWZpeGVzPXksbS5f Y3Nzb21QcmVmaXhlcz14LG0ubXE9SCxtLmhhc0V2ZW50PUksbS50ZXN0UHJvcD1m dW5jdGlvbihhKXtyZXR1cm4gaChbYV0pfSxtLnRlc3RBbGxQcm9wcz1qLG0udGVz dFN0eWxlcz1HLG0ucHJlZml4ZWQ9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBiP2oo YSxiLGMpOmooYSwicGZ4Iil9LG8uY2xhc3NOYW1lPW8uY2xhc3NOYW1lLnJlcGxh Y2UoLyhefFxzKW5vLWpzKFxzfCQpLywiJDEkMiIpKyhuPyIganMgIitELmpvaW4o IiAiKToiIiksbX0odGhpcyx0aGlzLmRvY3VtZW50KTsNCjsvLyBsaWIvZm91bmRh dGlvbi9qcy9mb3VuZGF0aW9uL2ZvdW5kYXRpb24uanMKIWZ1bmN0aW9uKGEsYixj LGQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKGEpe3JldHVybigic3RyaW5nIj09 dHlwZW9mIGF8fGEgaW5zdGFuY2VvZiBTdHJpbmcpJiYoYT1hLnJlcGxhY2UoL15b J1xcLyJdK3woO1xzP30pK3xbJ1xcLyJdKyQvZywiIikpLGF9ZnVuY3Rpb24gZihh KXt0aGlzLnNlbGVjdG9yPWEsdGhpcy5xdWVyeT0iIn12YXIgZz1mdW5jdGlvbihi KXt2YXIgYz1hKCJoZWFkIik7Yy5wcmVwZW5kKGEubWFwKGIsZnVuY3Rpb24oYSl7 aWYoMD09PWMuaGFzKCIuIithKS5sZW5ndGgpcmV0dXJuJzxtZXRhIGNsYXNzPSIn K2ErJyIgLz4nfSkpfTtnKFsiZm91bmRhdGlvbi1tcS1zbWFsbCIsImZvdW5kYXRp b24tbXEtc21hbGwtb25seSIsImZvdW5kYXRpb24tbXEtbWVkaXVtIiwiZm91bmRh dGlvbi1tcS1tZWRpdW0tb25seSIsImZvdW5kYXRpb24tbXEtbGFyZ2UiLCJmb3Vu ZGF0aW9uLW1xLWxhcmdlLW9ubHkiLCJmb3VuZGF0aW9uLW1xLXhsYXJnZSIsImZv dW5kYXRpb24tbXEteGxhcmdlLW9ubHkiLCJmb3VuZGF0aW9uLW1xLXh4bGFyZ2Ui LCJmb3VuZGF0aW9uLWRhdGEtYXR0cmlidXRlLW5hbWVzcGFjZSJdKSxhKGZ1bmN0 aW9uKCl7InVuZGVmaW5lZCIhPXR5cGVvZiBGYXN0Q2xpY2smJiJ1bmRlZmluZWQi IT10eXBlb2YgYy5ib2R5JiZGYXN0Q2xpY2suYXR0YWNoKGMuYm9keSl9KTt2YXIg aD1mdW5jdGlvbihiLGQpe2lmKCJzdHJpbmciPT10eXBlb2YgYil7aWYoZCl7dmFy IGU7aWYoZC5qcXVlcnkpe2lmKGU9ZFswXSwhZSlyZXR1cm4gZH1lbHNlIGU9ZDty ZXR1cm4gYShlLnF1ZXJ5U2VsZWN0b3JBbGwoYikpfXJldHVybiBhKGMucXVlcnlT ZWxlY3RvckFsbChiKSl9cmV0dXJuIGEoYixkKX0saT1mdW5jdGlvbihhKXt2YXIg Yj1bXTtyZXR1cm4gYXx8Yi5wdXNoKCJkYXRhIiksdGhpcy5uYW1lc3BhY2UubGVu Z3RoPjAmJmIucHVzaCh0aGlzLm5hbWVzcGFjZSksYi5wdXNoKHRoaXMubmFtZSks Yi5qb2luKCItIil9LGo9ZnVuY3Rpb24oYSl7dmFyIGI9YS5zcGxpdCgiLSIpLGM9 Yi5sZW5ndGgsZD1bXTt3aGlsZShjLS0pMCE9PWM/ZC5wdXNoKGJbY10pOnRoaXMu bmFtZXNwYWNlLmxlbmd0aD4wP2QucHVzaCh0aGlzLm5hbWVzcGFjZSxiW2NdKTpk LnB1c2goYltjXSk7cmV0dXJuIGQucmV2ZXJzZSgpLmpvaW4oIi0iKX0saz1mdW5j dGlvbihiLGMpe3ZhciBkPXRoaXMsZT1mdW5jdGlvbigpe3ZhciBlPWgodGhpcyks Zj0hZS5kYXRhKGQuYXR0cl9uYW1lKCEwKSsiLWluaXQiKTtlLmRhdGEoZC5hdHRy X25hbWUoITApKyItaW5pdCIsYS5leHRlbmQoe30sZC5zZXR0aW5ncyxjfHxiLGQu ZGF0YV9vcHRpb25zKGUpKSksZiYmZC5ldmVudHModGhpcyl9O2lmKGgodGhpcy5z Y29wZSkuaXMoIlsiK3RoaXMuYXR0cl9uYW1lKCkrIl0iKT9lLmNhbGwodGhpcy5z Y29wZSk6aCgiWyIrdGhpcy5hdHRyX25hbWUoKSsiXSIsdGhpcy5zY29wZSkuZWFj aChlKSwic3RyaW5nIj09dHlwZW9mIGIpcmV0dXJuIHRoaXNbYl0uY2FsbCh0aGlz LGMpfSxsPWZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYygpe2IoYVswXSl9ZnVuY3Rp b24gZCgpe2lmKHRoaXMub25lKCJsb2FkIixjKSwvTVNJRSAoXGQrXC5cZCspOy8u dGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSl7dmFyIGE9dGhpcy5hdHRyKCJzcmMi KSxiPWEubWF0Y2goL1w/Lyk/IiYiOiI/IjtiKz0icmFuZG9tPSIrKG5ldyBEYXRl KS5nZXRUaW1lKCksdGhpcy5hdHRyKCJzcmMiLGErYil9fXJldHVybiBhLmF0dHIo InNyYyIpP3ZvaWQoYVswXS5jb21wbGV0ZXx8ND09PWFbMF0ucmVhZHlTdGF0ZT9j KCk6ZC5jYWxsKGEpKTp2b2lkIGMoKX07Yi5tYXRjaE1lZGlhfHwoYi5tYXRjaE1l ZGlhPWZ1bmN0aW9uKCl7dmFyIGE9Yi5zdHlsZU1lZGlhfHxiLm1lZGlhO2lmKCFh KXt2YXIgZD1jLmNyZWF0ZUVsZW1lbnQoInN0eWxlIiksZT1jLmdldEVsZW1lbnRz QnlUYWdOYW1lKCJzY3JpcHQiKVswXSxmPW51bGw7ZC50eXBlPSJ0ZXh0L2NzcyIs ZC5pZD0ibWF0Y2htZWRpYWpzLXRlc3QiLGUucGFyZW50Tm9kZS5pbnNlcnRCZWZv cmUoZCxlKSxmPSJnZXRDb21wdXRlZFN0eWxlImluIGImJmIuZ2V0Q29tcHV0ZWRT dHlsZShkLG51bGwpfHxkLmN1cnJlbnRTdHlsZSxhPXttYXRjaE1lZGl1bTpmdW5j dGlvbihhKXt2YXIgYj0iQG1lZGlhICIrYSsieyAjbWF0Y2htZWRpYWpzLXRlc3Qg eyB3aWR0aDogMXB4OyB9IH0iO3JldHVybiBkLnN0eWxlU2hlZXQ/ZC5zdHlsZVNo ZWV0LmNzc1RleHQ9YjpkLnRleHRDb250ZW50PWIsIjFweCI9PT1mLndpZHRofX19 cmV0dXJuIGZ1bmN0aW9uKGIpe3JldHVybnttYXRjaGVzOmEubWF0Y2hNZWRpdW0o Ynx8ImFsbCIpLG1lZGlhOmJ8fCJhbGwifX19KCkpLGZ1bmN0aW9uKGEpe2Z1bmN0 aW9uIGMoKXtkJiYoZyhjKSxpJiZhLmZ4LnRpY2soKSl9Zm9yKHZhciBkLGU9MCxm PVsid2Via2l0IiwibW96Il0sZz1iLnJlcXVlc3RBbmltYXRpb25GcmFtZSxoPWIu Y2FuY2VsQW5pbWF0aW9uRnJhbWUsaT0idW5kZWZpbmVkIiE9dHlwZW9mIGEuZng7 ZTxmLmxlbmd0aCYmIWc7ZSsrKWc9YltmW2VdKyJSZXF1ZXN0QW5pbWF0aW9uRnJh bWUiXSxoPWh8fGJbZltlXSsiQ2FuY2VsQW5pbWF0aW9uRnJhbWUiXXx8YltmW2Vd KyJDYW5jZWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiXTtnPyhiLnJlcXVlc3RBbmlt YXRpb25GcmFtZT1nLGIuY2FuY2VsQW5pbWF0aW9uRnJhbWU9aCxpJiYoYS5meC50 aW1lcj1mdW5jdGlvbihiKXtiKCkmJmEudGltZXJzLnB1c2goYikmJiFkJiYoZD0h MCxjKCkpfSxhLmZ4LnN0b3A9ZnVuY3Rpb24oKXtkPSExfSkpOihiLnJlcXVlc3RB bmltYXRpb25GcmFtZT1mdW5jdGlvbihhKXt2YXIgYz0obmV3IERhdGUpLmdldFRp bWUoKSxkPU1hdGgubWF4KDAsMTYtKGMtZSkpLGY9Yi5zZXRUaW1lb3V0KGZ1bmN0 aW9uKCl7YShjK2QpfSxkKTtyZXR1cm4gZT1jK2QsZn0sYi5jYW5jZWxBbmltYXRp b25GcmFtZT1mdW5jdGlvbihhKXtjbGVhclRpbWVvdXQoYSl9KX0oYSksZi5wcm90 b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeXx8KHRo aXMucXVlcnk9aCh0aGlzLnNlbGVjdG9yKS5jc3MoImZvbnQtZmFtaWx5IikucmVw bGFjZSgvXltcL1xcJyJdK3woO1xzP30pK3xbXC9cXCciXSskL2csIiIpKX0sYi5G b3VuZGF0aW9uPXtuYW1lOiJGb3VuZGF0aW9uIix2ZXJzaW9uOiI1LjUuMyIsbWVk aWFfcXVlcmllczp7c21hbGw6bmV3IGYoIi5mb3VuZGF0aW9uLW1xLXNtYWxsIiks InNtYWxsLW9ubHkiOm5ldyBmKCIuZm91bmRhdGlvbi1tcS1zbWFsbC1vbmx5Iiks bWVkaXVtOm5ldyBmKCIuZm91bmRhdGlvbi1tcS1tZWRpdW0iKSwibWVkaXVtLW9u bHkiOm5ldyBmKCIuZm91bmRhdGlvbi1tcS1tZWRpdW0tb25seSIpLGxhcmdlOm5l dyBmKCIuZm91bmRhdGlvbi1tcS1sYXJnZSIpLCJsYXJnZS1vbmx5IjpuZXcgZigi LmZvdW5kYXRpb24tbXEtbGFyZ2Utb25seSIpLHhsYXJnZTpuZXcgZigiLmZvdW5k YXRpb24tbXEteGxhcmdlIiksInhsYXJnZS1vbmx5IjpuZXcgZigiLmZvdW5kYXRp b24tbXEteGxhcmdlLW9ubHkiKSx4eGxhcmdlOm5ldyBmKCIuZm91bmRhdGlvbi1t cS14eGxhcmdlIil9LHN0eWxlc2hlZXQ6YSgiPHN0eWxlPjwvc3R5bGU+IikuYXBw ZW5kVG8oImhlYWQiKVswXS5zaGVldCxnbG9iYWw6e25hbWVzcGFjZTpkfSxpbml0 OmZ1bmN0aW9uKGEsYyxkLGUsZil7dmFyIGc9W2EsZCxlLGZdLGk9W107aWYodGhp cy5ydGw9L3J0bC9pLnRlc3QoaCgiaHRtbCIpLmF0dHIoImRpciIpKSx0aGlzLnNj b3BlPWF8fHRoaXMuc2NvcGUsdGhpcy5zZXRfbmFtZXNwYWNlKCksYyYmInN0cmlu ZyI9PXR5cGVvZiBjJiYhL3JlZmxvdy9pLnRlc3QoYykpdGhpcy5saWJzLmhhc093 blByb3BlcnR5KGMpJiZpLnB1c2godGhpcy5pbml0X2xpYihjLGcpKTtlbHNlIGZv cih2YXIgaiBpbiB0aGlzLmxpYnMpaS5wdXNoKHRoaXMuaW5pdF9saWIoaixjKSk7 cmV0dXJuIGgoYikubG9hZChmdW5jdGlvbigpe2goYikudHJpZ2dlcigicmVzaXpl LmZuZHRuLmNsZWFyaW5nIikudHJpZ2dlcigicmVzaXplLmZuZHRuLmRyb3Bkb3du IikudHJpZ2dlcigicmVzaXplLmZuZHRuLmVxdWFsaXplciIpLnRyaWdnZXIoInJl c2l6ZS5mbmR0bi5pbnRlcmNoYW5nZSIpLnRyaWdnZXIoInJlc2l6ZS5mbmR0bi5q b3lyaWRlIikudHJpZ2dlcigicmVzaXplLmZuZHRuLm1hZ2VsbGFuIikudHJpZ2dl cigicmVzaXplLmZuZHRuLnRvcGJhciIpLnRyaWdnZXIoInJlc2l6ZS5mbmR0bi5z bGlkZXIiKX0pLGF9LGluaXRfbGliOmZ1bmN0aW9uKGIsYyl7cmV0dXJuIHRoaXMu bGlicy5oYXNPd25Qcm9wZXJ0eShiKT8odGhpcy5wYXRjaCh0aGlzLmxpYnNbYl0p LGMmJmMuaGFzT3duUHJvcGVydHkoYik/KCJ1bmRlZmluZWQiIT10eXBlb2YgdGhp cy5saWJzW2JdLnNldHRpbmdzP2EuZXh0ZW5kKCEwLHRoaXMubGlic1tiXS5zZXR0 aW5ncyxjW2JdKToidW5kZWZpbmVkIiE9dHlwZW9mIHRoaXMubGlic1tiXS5kZWZh dWx0cyYmYS5leHRlbmQoITAsdGhpcy5saWJzW2JdLmRlZmF1bHRzLGNbYl0pLHRo aXMubGlic1tiXS5pbml0LmFwcGx5KHRoaXMubGlic1tiXSxbdGhpcy5zY29wZSxj W2JdXSkpOihjPWMgaW5zdGFuY2VvZiBBcnJheT9jOm5ldyBBcnJheShjKSx0aGlz LmxpYnNbYl0uaW5pdC5hcHBseSh0aGlzLmxpYnNbYl0sYykpKTpmdW5jdGlvbigp e319LHBhdGNoOmZ1bmN0aW9uKGEpe2Euc2NvcGU9dGhpcy5zY29wZSxhLm5hbWVz cGFjZT10aGlzLmdsb2JhbC5uYW1lc3BhY2UsYS5ydGw9dGhpcy5ydGwsYS5kYXRh X29wdGlvbnM9dGhpcy51dGlscy5kYXRhX29wdGlvbnMsYS5hdHRyX25hbWU9aSxh LmFkZF9uYW1lc3BhY2U9aixhLmJpbmRpbmdzPWssYS5TPXRoaXMudXRpbHMuU30s aW5oZXJpdDpmdW5jdGlvbihhLGIpe3ZhciBjPWIuc3BsaXQoIiAiKSxkPWMubGVu Z3RoO3doaWxlKGQtLSl0aGlzLnV0aWxzLmhhc093blByb3BlcnR5KGNbZF0pJiYo YVtjW2RdXT10aGlzLnV0aWxzW2NbZF1dKX0sc2V0X25hbWVzcGFjZTpmdW5jdGlv bigpe3ZhciBiPXRoaXMuZ2xvYmFsLm5hbWVzcGFjZT09PWQ/YSgiLmZvdW5kYXRp b24tZGF0YS1hdHRyaWJ1dGUtbmFtZXNwYWNlIikuY3NzKCJmb250LWZhbWlseSIp OnRoaXMuZ2xvYmFsLm5hbWVzcGFjZTt0aGlzLmdsb2JhbC5uYW1lc3BhY2U9Yj09 PWR8fC9mYWxzZS9pLnRlc3QoYik/IiI6Yn0sbGliczp7fSx1dGlsczp7UzpoLHRo cm90dGxlOmZ1bmN0aW9uKGEsYil7dmFyIGM9bnVsbDtyZXR1cm4gZnVuY3Rpb24o KXt2YXIgZD10aGlzLGU9YXJndW1lbnRzO251bGw9PWMmJihjPXNldFRpbWVvdXQo ZnVuY3Rpb24oKXthLmFwcGx5KGQsZSksYz1udWxsfSxiKSl9fSxkZWJvdW5jZTpm dW5jdGlvbihhLGIsYyl7dmFyIGQsZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZj10 aGlzLGc9YXJndW1lbnRzLGg9ZnVuY3Rpb24oKXtkPW51bGwsY3x8KGU9YS5hcHBs eShmLGcpKX0saT1jJiYhZDtyZXR1cm4gY2xlYXJUaW1lb3V0KGQpLGQ9c2V0VGlt ZW91dChoLGIpLGkmJihlPWEuYXBwbHkoZixnKSksZX19LGRhdGFfb3B0aW9uczpm dW5jdGlvbihiLGMpe2Z1bmN0aW9uIGQoYSl7cmV0dXJuIWlzTmFOKGEtMCkmJm51 bGwhPT1hJiYiIiE9PWEmJmEhPT0hMSYmYSE9PSEwfWZ1bmN0aW9uIGUoYil7cmV0 dXJuInN0cmluZyI9PXR5cGVvZiBiP2EudHJpbShiKTpifWM9Y3x8Im9wdGlvbnMi O3ZhciBmPXt9LGcsaCxpLGo9ZnVuY3Rpb24oYSl7dmFyIGI9Rm91bmRhdGlvbi5n bG9iYWwubmFtZXNwYWNlO3JldHVybiBiLmxlbmd0aD4wP2EuZGF0YShiKyItIitj KTphLmRhdGEoYyl9LGs9aihiKTtpZigib2JqZWN0Ij09dHlwZW9mIGspcmV0dXJu IGs7aT0oa3x8IjoiKS5zcGxpdCgiOyIpLGc9aS5sZW5ndGg7d2hpbGUoZy0tKWg9 aVtnXS5zcGxpdCgiOiIpLGg9W2hbMF0saC5zbGljZSgxKS5qb2luKCI6IildLC90 cnVlL2kudGVzdChoWzFdKSYmKGhbMV09ITApLC9mYWxzZS9pLnRlc3QoaFsxXSkm JihoWzFdPSExKSxkKGhbMV0pJiYoaFsxXS5pbmRleE9mKCIuIik9PT0tMT9oWzFd PXBhcnNlSW50KGhbMV0sMTApOmhbMV09cGFyc2VGbG9hdChoWzFdKSksMj09PWgu bGVuZ3RoJiZoWzBdLmxlbmd0aD4wJiYoZltlKGhbMF0pXT1lKGhbMV0pKTtyZXR1 cm4gZn0scmVnaXN0ZXJfbWVkaWE6ZnVuY3Rpb24oYixjKXtGb3VuZGF0aW9uLm1l ZGlhX3F1ZXJpZXNbYl09PT1kJiYoYSgiaGVhZCIpLmFwcGVuZCgnPG1ldGEgY2xh c3M9IicrYysnIi8+JyksRm91bmRhdGlvbi5tZWRpYV9xdWVyaWVzW2JdPWUoYSgi LiIrYykuY3NzKCJmb250LWZhbWlseSIpKSl9LGFkZF9jdXN0b21fcnVsZTpmdW5j dGlvbihhLGIpe2lmKGI9PT1kJiZGb3VuZGF0aW9uLnN0eWxlc2hlZXQpRm91bmRh dGlvbi5zdHlsZXNoZWV0Lmluc2VydFJ1bGUoYSxGb3VuZGF0aW9uLnN0eWxlc2hl ZXQuY3NzUnVsZXMubGVuZ3RoKTtlbHNle3ZhciBjPUZvdW5kYXRpb24ubWVkaWFf cXVlcmllc1tiXTtjIT09ZCYmRm91bmRhdGlvbi5zdHlsZXNoZWV0Lmluc2VydFJ1 bGUoIkBtZWRpYSAiK0ZvdW5kYXRpb24ubWVkaWFfcXVlcmllc1tiXSsieyAiK2Er IiB9IixGb3VuZGF0aW9uLnN0eWxlc2hlZXQuY3NzUnVsZXMubGVuZ3RoKX19LGlt YWdlX2xvYWRlZDpmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoYSl7Zm9yKHZhciBi PWEubGVuZ3RoLGM9Yi0xO2M+PTA7Yy0tKWlmKGEuYXR0cigiaGVpZ2h0Iik9PT1k KXJldHVybiExO3JldHVybiEwfXZhciBlPXRoaXMsZj1hLmxlbmd0aDsoMD09PWZ8 fGMoYSkpJiZiKGEpLGEuZWFjaChmdW5jdGlvbigpe2woZS5TKHRoaXMpLGZ1bmN0 aW9uKCl7Zi09MSwwPT09ZiYmYihhKX0pfSl9LHJhbmRvbV9zdHI6ZnVuY3Rpb24o KXtyZXR1cm4gdGhpcy5maWR4fHwodGhpcy5maWR4PTApLHRoaXMucHJlZml4PXRo aXMucHJlZml4fHxbdGhpcy5uYW1lfHwiRiIsKCtuZXcgRGF0ZSkudG9TdHJpbmco MzYpXS5qb2luKCItIiksdGhpcy5wcmVmaXgrKHRoaXMuZmlkeCsrKS50b1N0cmlu ZygzNil9LG1hdGNoOmZ1bmN0aW9uKGEpe3JldHVybiBiLm1hdGNoTWVkaWEoYSku bWF0Y2hlc30saXNfc21hbGxfdXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXRj aChGb3VuZGF0aW9uLm1lZGlhX3F1ZXJpZXMuc21hbGwpfSxpc19tZWRpdW1fdXA6 ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXRjaChGb3VuZGF0aW9uLm1lZGlhX3F1 ZXJpZXMubWVkaXVtKX0saXNfbGFyZ2VfdXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhp cy5tYXRjaChGb3VuZGF0aW9uLm1lZGlhX3F1ZXJpZXMubGFyZ2UpfSxpc194bGFy Z2VfdXA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXRjaChGb3VuZGF0aW9uLm1l ZGlhX3F1ZXJpZXMueGxhcmdlKX0saXNfeHhsYXJnZV91cDpmdW5jdGlvbigpe3Jl dHVybiB0aGlzLm1hdGNoKEZvdW5kYXRpb24ubWVkaWFfcXVlcmllcy54eGxhcmdl KX0saXNfc21hbGxfb25seTpmdW5jdGlvbigpe3JldHVybiEodGhpcy5pc19tZWRp dW1fdXAoKXx8dGhpcy5pc19sYXJnZV91cCgpfHx0aGlzLmlzX3hsYXJnZV91cCgp fHx0aGlzLmlzX3h4bGFyZ2VfdXAoKSl9LGlzX21lZGl1bV9vbmx5OmZ1bmN0aW9u KCl7cmV0dXJuIHRoaXMuaXNfbWVkaXVtX3VwKCkmJiF0aGlzLmlzX2xhcmdlX3Vw KCkmJiF0aGlzLmlzX3hsYXJnZV91cCgpJiYhdGhpcy5pc194eGxhcmdlX3VwKCl9 LGlzX2xhcmdlX29ubHk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc19tZWRpdW1f dXAoKSYmdGhpcy5pc19sYXJnZV91cCgpJiYhdGhpcy5pc194bGFyZ2VfdXAoKSYm IXRoaXMuaXNfeHhsYXJnZV91cCgpfSxpc194bGFyZ2Vfb25seTpmdW5jdGlvbigp e3JldHVybiB0aGlzLmlzX21lZGl1bV91cCgpJiZ0aGlzLmlzX2xhcmdlX3VwKCkm JnRoaXMuaXNfeGxhcmdlX3VwKCkmJiF0aGlzLmlzX3h4bGFyZ2VfdXAoKX0saXNf eHhsYXJnZV9vbmx5OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNfbWVkaXVtX3Vw KCkmJnRoaXMuaXNfbGFyZ2VfdXAoKSYmdGhpcy5pc194bGFyZ2VfdXAoKSYmdGhp cy5pc194eGxhcmdlX3VwKCl9fX0sYS5mbi5mb3VuZGF0aW9uPWZ1bmN0aW9uKCl7 dmFyIGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApO3Jl dHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtyZXR1cm4gRm91bmRhdGlvbi5pbml0 LmFwcGx5KEZvdW5kYXRpb24sW3RoaXNdLmNvbmNhdChhKSksdGhpc30pfX0oalF1 ZXJ5LHdpbmRvdyx3aW5kb3cuZG9jdW1lbnQpOw0KOy8vIGxpYi9mb3VuZGF0aW9u L2pzL2ZvdW5kYXRpb24vZm91bmRhdGlvbi5kcm9wZG93bi5qcwohZnVuY3Rpb24o YSxiLGMsZCl7InVzZSBzdHJpY3QiO0ZvdW5kYXRpb24ubGlicy5kcm9wZG93bj17 bmFtZToiZHJvcGRvd24iLHZlcnNpb246IjUuNS4zIixzZXR0aW5nczp7YWN0aXZl X2NsYXNzOiJvcGVuIixkaXNhYmxlZF9jbGFzczoiZGlzYWJsZWQiLG1lZ2FfY2xh c3M6Im1lZ2EiLGFsaWduOiJib3R0b20iLGlzX2hvdmVyOiExLGhvdmVyX3RpbWVv dXQ6MTUwLG9wZW5lZDpmdW5jdGlvbigpe30sY2xvc2VkOmZ1bmN0aW9uKCl7fX0s aW5pdDpmdW5jdGlvbihiLGMsZCl7Rm91bmRhdGlvbi5pbmhlcml0KHRoaXMsInRo cm90dGxlIiksYS5leHRlbmQoITAsdGhpcy5zZXR0aW5ncyxjLGQpLHRoaXMuYmlu ZGluZ3MoYyxkKX0sZXZlbnRzOmZ1bmN0aW9uKGQpe3ZhciBlPXRoaXMsZj1lLlM7 Zih0aGlzLnNjb3BlKS5vZmYoIi5kcm9wZG93biIpLm9uKCJjbGljay5mbmR0bi5k cm9wZG93biIsIlsiK3RoaXMuYXR0cl9uYW1lKCkrIl0iLGZ1bmN0aW9uKGIpe3Zh ciBjPWYodGhpcykuZGF0YShlLmF0dHJfbmFtZSghMCkrIi1pbml0Iil8fGUuc2V0 dGluZ3M7Yy5pc19ob3ZlciYmIU1vZGVybml6ci50b3VjaHx8KGIucHJldmVudERl ZmF1bHQoKSxmKHRoaXMpLnBhcmVudCgiW2RhdGEtcmV2ZWFsLWlkXSIpLmxlbmd0 aCYmYi5zdG9wUHJvcGFnYXRpb24oKSxlLnRvZ2dsZShhKHRoaXMpKSl9KS5vbigi bW91c2VlbnRlci5mbmR0bi5kcm9wZG93biIsIlsiK3RoaXMuYXR0cl9uYW1lKCkr Il0sIFsiK3RoaXMuYXR0cl9uYW1lKCkrIi1jb250ZW50XSIsZnVuY3Rpb24oYSl7 dmFyIGI9Zih0aGlzKSxjLGQ7Y2xlYXJUaW1lb3V0KGUudGltZW91dCksYi5kYXRh KGUuZGF0YV9hdHRyKCkpPyhjPWYoIiMiK2IuZGF0YShlLmRhdGFfYXR0cigpKSks ZD1iKTooYz1iLGQ9ZigiWyIrZS5hdHRyX25hbWUoKSsnPSInK2MuYXR0cigiaWQi KSsnIl0nKSk7dmFyIGc9ZC5kYXRhKGUuYXR0cl9uYW1lKCEwKSsiLWluaXQiKXx8 ZS5zZXR0aW5ncztmKGEuY3VycmVudFRhcmdldCkuZGF0YShlLmRhdGFfYXR0cigp KSYmZy5pc19ob3ZlciYmZS5jbG9zZWFsbC5jYWxsKGUpLGcuaXNfaG92ZXImJmUu b3Blbi5hcHBseShlLFtjLGRdKX0pLm9uKCJtb3VzZWxlYXZlLmZuZHRuLmRyb3Bk b3duIiwiWyIrdGhpcy5hdHRyX25hbWUoKSsiXSwgWyIrdGhpcy5hdHRyX25hbWUo KSsiLWNvbnRlbnRdIixmdW5jdGlvbihhKXt2YXIgYj1mKHRoaXMpLGM7aWYoYi5k YXRhKGUuZGF0YV9hdHRyKCkpKWM9Yi5kYXRhKGUuZGF0YV9hdHRyKCEwKSsiLWlu aXQiKXx8ZS5zZXR0aW5ncztlbHNlIHZhciBkPWYoIlsiK2UuYXR0cl9uYW1lKCkr Jz0iJytmKHRoaXMpLmF0dHIoImlkIikrJyJdJyksYz1kLmRhdGEoZS5hdHRyX25h bWUoITApKyItaW5pdCIpfHxlLnNldHRpbmdzO2UudGltZW91dD1zZXRUaW1lb3V0 KGZ1bmN0aW9uKCl7Yi5kYXRhKGUuZGF0YV9hdHRyKCkpP2MuaXNfaG92ZXImJmUu Y2xvc2UuY2FsbChlLGYoIiMiK2IuZGF0YShlLmRhdGFfYXR0cigpKSkpOmMuaXNf aG92ZXImJmUuY2xvc2UuY2FsbChlLGIpfS5iaW5kKHRoaXMpLGMuaG92ZXJfdGlt ZW91dCl9KS5vbigiY2xpY2suZm5kdG4uZHJvcGRvd24iLGZ1bmN0aW9uKGIpe3Zh ciBkPWYoYi50YXJnZXQpLmNsb3Nlc3QoIlsiK2UuYXR0cl9uYW1lKCkrIi1jb250 ZW50XSIpLGc9ZC5maW5kKCJhIik7aWYoZy5sZW5ndGg+MCYmImZhbHNlIiE9PWQu YXR0cigiYXJpYS1hdXRvY2xvc2UiKSYmZS5jbG9zZS5jYWxsKGUsZigiWyIrZS5h dHRyX25hbWUoKSsiLWNvbnRlbnRdIikpLChiLnRhcmdldD09PWN8fGEuY29udGFp bnMoYy5kb2N1bWVudEVsZW1lbnQsYi50YXJnZXQpKSYmIShmKGIudGFyZ2V0KS5j bG9zZXN0KCJbIitlLmF0dHJfbmFtZSgpKyJdIikubGVuZ3RoPjApKXJldHVybiFm KGIudGFyZ2V0KS5kYXRhKCJyZXZlYWxJZCIpJiZkLmxlbmd0aD4wJiYoZihiLnRh cmdldCkuaXMoIlsiK2UuYXR0cl9uYW1lKCkrIi1jb250ZW50XSIpfHxhLmNvbnRh aW5zKGQuZmlyc3QoKVswXSxiLnRhcmdldCkpP3ZvaWQgYi5zdG9wUHJvcGFnYXRp b24oKTp2b2lkIGUuY2xvc2UuY2FsbChlLGYoIlsiK2UuYXR0cl9uYW1lKCkrIi1j b250ZW50XSIpKX0pLm9uKCJvcGVuZWQuZm5kdG4uZHJvcGRvd24iLCJbIitlLmF0 dHJfbmFtZSgpKyItY29udGVudF0iLGZ1bmN0aW9uKCl7ZS5zZXR0aW5ncy5vcGVu ZWQuY2FsbCh0aGlzKX0pLm9uKCJjbG9zZWQuZm5kdG4uZHJvcGRvd24iLCJbIitl LmF0dHJfbmFtZSgpKyItY29udGVudF0iLGZ1bmN0aW9uKCl7ZS5zZXR0aW5ncy5j bG9zZWQuY2FsbCh0aGlzKX0pLGYoYikub2ZmKCIuZHJvcGRvd24iKS5vbigicmVz aXplLmZuZHRuLmRyb3Bkb3duIixlLnRocm90dGxlKGZ1bmN0aW9uKCl7ZS5yZXNp emUuY2FsbChlKX0sNTApKSx0aGlzLnJlc2l6ZSgpfSxjbG9zZTpmdW5jdGlvbihi KXt2YXIgYz10aGlzO2IuZWFjaChmdW5jdGlvbihkKXt2YXIgZT1hKCJbIitjLmF0 dHJfbmFtZSgpKyI9IitiW2RdLmlkKyJdIil8fGEoImFyaWEtY29udHJvbHM9Iiti W2RdLmlkKyJdIik7ZS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKSxjLlMo dGhpcykuaGFzQ2xhc3MoYy5zZXR0aW5ncy5hY3RpdmVfY2xhc3MpJiYoYy5TKHRo aXMpLmNzcyhGb3VuZGF0aW9uLnJ0bD8icmlnaHQiOiJsZWZ0IiwiLTk5OTk5cHgi KS5hdHRyKCJhcmlhLWhpZGRlbiIsInRydWUiKS5yZW1vdmVDbGFzcyhjLnNldHRp bmdzLmFjdGl2ZV9jbGFzcykucHJldigiWyIrYy5hdHRyX25hbWUoKSsiXSIpLnJl bW92ZUNsYXNzKGMuc2V0dGluZ3MuYWN0aXZlX2NsYXNzKS5yZW1vdmVEYXRhKCJ0 YXJnZXQiKSxjLlModGhpcykudHJpZ2dlcigiY2xvc2VkLmZuZHRuLmRyb3Bkb3du IixbYl0pKX0pLGIucmVtb3ZlQ2xhc3MoImYtb3Blbi0iK3RoaXMuYXR0cl9uYW1l KCEwKSl9LGNsb3NlYWxsOmZ1bmN0aW9uKCl7dmFyIGI9dGhpczthLmVhY2goYi5T KCIuZi1vcGVuLSIrdGhpcy5hdHRyX25hbWUoITApKSxmdW5jdGlvbigpe2IuY2xv c2UuY2FsbChiLGIuUyh0aGlzKSl9KX0sb3BlbjpmdW5jdGlvbihhLGIpe3RoaXMu Y3NzKGEuYWRkQ2xhc3ModGhpcy5zZXR0aW5ncy5hY3RpdmVfY2xhc3MpLGIpLGEu cHJldigiWyIrdGhpcy5hdHRyX25hbWUoKSsiXSIpLmFkZENsYXNzKHRoaXMuc2V0 dGluZ3MuYWN0aXZlX2NsYXNzKSxhLmRhdGEoInRhcmdldCIsYi5nZXQoMCkpLnRy aWdnZXIoIm9wZW5lZC5mbmR0bi5kcm9wZG93biIsW2EsYl0pLGEuYXR0cigiYXJp YS1oaWRkZW4iLCJmYWxzZSIpLGIuYXR0cigiYXJpYS1leHBhbmRlZCIsInRydWUi KSxhLmZvY3VzKCksYS5hZGRDbGFzcygiZi1vcGVuLSIrdGhpcy5hdHRyX25hbWUo ITApKX0sZGF0YV9hdHRyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZXNwYWNl Lmxlbmd0aD4wP3RoaXMubmFtZXNwYWNlKyItIit0aGlzLm5hbWU6dGhpcy5uYW1l fSx0b2dnbGU6ZnVuY3Rpb24oYSl7aWYoIWEuaGFzQ2xhc3ModGhpcy5zZXR0aW5n cy5kaXNhYmxlZF9jbGFzcykpe3ZhciBiPXRoaXMuUygiIyIrYS5kYXRhKHRoaXMu ZGF0YV9hdHRyKCkpKTswIT09Yi5sZW5ndGgmJih0aGlzLmNsb3NlLmNhbGwodGhp cyx0aGlzLlMoIlsiK3RoaXMuYXR0cl9uYW1lKCkrIi1jb250ZW50XSIpLm5vdChi KSksYi5oYXNDbGFzcyh0aGlzLnNldHRpbmdzLmFjdGl2ZV9jbGFzcyk/KHRoaXMu Y2xvc2UuY2FsbCh0aGlzLGIpLGIuZGF0YSgidGFyZ2V0IikhPT1hLmdldCgwKSYm dGhpcy5vcGVuLmNhbGwodGhpcyxiLGEpKTp0aGlzLm9wZW4uY2FsbCh0aGlzLGIs YSkpfX0scmVzaXplOmZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5TKCJbIit0aGlzLmF0 dHJfbmFtZSgpKyItY29udGVudF0ub3BlbiIpLGM9YShiLmRhdGEoInRhcmdldCIp KTtiLmxlbmd0aCYmYy5sZW5ndGgmJnRoaXMuY3NzKGIsYyl9LGNzczpmdW5jdGlv bihhLGIpe3ZhciBjPU1hdGgubWF4KChiLndpZHRoKCktYS53aWR0aCgpKS8yLDgp LGQ9Yi5kYXRhKHRoaXMuYXR0cl9uYW1lKCEwKSsiLWluaXQiKXx8dGhpcy5zZXR0 aW5ncyxlPWEucGFyZW50KCkuY3NzKCJvdmVyZmxvdy15Iil8fGEucGFyZW50KCku Y3NzKCJvdmVyZmxvdyIpO2lmKHRoaXMuY2xlYXJfaWR4KCksdGhpcy5zbWFsbCgp KXt2YXIgZj10aGlzLmRpcnMuYm90dG9tLmNhbGwoYSxiLGQpO2EuYXR0cigic3R5 bGUiLCIiKS5yZW1vdmVDbGFzcygiZHJvcC1sZWZ0IGRyb3AtcmlnaHQgZHJvcC10 b3AiKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsd2lkdGg6Ijk1JSIsIm1heC13 aWR0aCI6Im5vbmUiLHRvcDpmLnRvcH0pLGEuY3NzKEZvdW5kYXRpb24ucnRsPyJy aWdodCI6ImxlZnQiLGMpfWVsc2UgaWYoInZpc2libGUiIT09ZSl7dmFyIGc9Ylsw XS5vZmZzZXRUb3ArYlswXS5vZmZzZXRIZWlnaHQ7YS5hdHRyKCJzdHlsZSIsIiIp LmNzcyh7cG9zaXRpb246ImFic29sdXRlIix0b3A6Z30pLGEuY3NzKEZvdW5kYXRp b24ucnRsPyJyaWdodCI6ImxlZnQiLGMpfWVsc2UgdGhpcy5zdHlsZShhLGIsZCk7 cmV0dXJuIGF9LHN0eWxlOmZ1bmN0aW9uKGIsYyxkKXt2YXIgZT1hLmV4dGVuZCh7 cG9zaXRpb246ImFic29sdXRlIn0sdGhpcy5kaXJzW2QuYWxpZ25dLmNhbGwoYixj LGQpKTtiLmF0dHIoInN0eWxlIiwiIikuY3NzKGUpfSxkaXJzOntfYmFzZTpmdW5j dGlvbihhLGQpe3ZhciBlPXRoaXMub2Zmc2V0UGFyZW50KCksZj1lLm9mZnNldCgp LGc9YS5vZmZzZXQoKTtnLnRvcC09Zi50b3AsZy5sZWZ0LT1mLmxlZnQsZy5taXNz UmlnaHQ9ITEsZy5taXNzVG9wPSExLGcubWlzc0xlZnQ9ITEsZy5sZWZ0UmlnaHRG bGFnPSExO3ZhciBoLGk9Yi5pbm5lcldpZHRoO2g9Yy5nZXRFbGVtZW50c0J5Q2xh c3NOYW1lKCJyb3ciKVswXT9jLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInJvdyIp WzBdLmNsaWVudFdpZHRoOmk7dmFyIGo9KGktaCkvMixrPWg7aWYoIXRoaXMuaGFz Q2xhc3MoIm1lZ2EiKSYmIWQuaWdub3JlX3JlcG9zaXRpb25pbmcpe3ZhciBsPXRo aXMub3V0ZXJXaWR0aCgpLG09YS5vZmZzZXQoKS5sZWZ0O2Eub2Zmc2V0KCkudG9w PD10aGlzLm91dGVySGVpZ2h0KCkmJihnLm1pc3NUb3A9ITAsaz1pLWosZy5sZWZ0 UmlnaHRGbGFnPSEwKSxtK2w+bStqJiZtLWo+bCYmKGcubWlzc1JpZ2h0PSEwLGcu bWlzc0xlZnQ9ITEpLG0tbDw9MCYmKGcubWlzc0xlZnQ9ITAsZy5taXNzUmlnaHQ9 ITEpfXJldHVybiBnfSx0b3A6ZnVuY3Rpb24oYSxiKXt2YXIgYz1Gb3VuZGF0aW9u LmxpYnMuZHJvcGRvd24sZD1jLmRpcnMuX2Jhc2UuY2FsbCh0aGlzLGEsYik7cmV0 dXJuIHRoaXMuYWRkQ2xhc3MoImRyb3AtdG9wIiksMT09ZC5taXNzVG9wJiYoZC50 b3A9ZC50b3ArYS5vdXRlckhlaWdodCgpK3RoaXMub3V0ZXJIZWlnaHQoKSx0aGlz LnJlbW92ZUNsYXNzKCJkcm9wLXRvcCIpKSwxPT1kLm1pc3NSaWdodCYmKGQubGVm dD1kLmxlZnQtdGhpcy5vdXRlcldpZHRoKCkrYS5vdXRlcldpZHRoKCkpLChhLm91 dGVyV2lkdGgoKTx0aGlzLm91dGVyV2lkdGgoKXx8Yy5zbWFsbCgpfHx0aGlzLmhh c0NsYXNzKGIubWVnYV9tZW51KSkmJmMuYWRqdXN0X3BpcCh0aGlzLGEsYixkKSxG b3VuZGF0aW9uLnJ0bD97bGVmdDpkLmxlZnQtdGhpcy5vdXRlcldpZHRoKCkrYS5v dXRlcldpZHRoKCksdG9wOmQudG9wLXRoaXMub3V0ZXJIZWlnaHQoKX06e2xlZnQ6 ZC5sZWZ0LHRvcDpkLnRvcC10aGlzLm91dGVySGVpZ2h0KCl9fSxib3R0b206ZnVu Y3Rpb24oYSxiKXt2YXIgYz1Gb3VuZGF0aW9uLmxpYnMuZHJvcGRvd24sZD1jLmRp cnMuX2Jhc2UuY2FsbCh0aGlzLGEsYik7cmV0dXJuIDE9PWQubWlzc1JpZ2h0JiYo ZC5sZWZ0PWQubGVmdC10aGlzLm91dGVyV2lkdGgoKSthLm91dGVyV2lkdGgoKSks KGEub3V0ZXJXaWR0aCgpPHRoaXMub3V0ZXJXaWR0aCgpfHxjLnNtYWxsKCl8fHRo aXMuaGFzQ2xhc3MoYi5tZWdhX21lbnUpKSYmYy5hZGp1c3RfcGlwKHRoaXMsYSxi LGQpLGMucnRsP3tsZWZ0OmQubGVmdC10aGlzLm91dGVyV2lkdGgoKSthLm91dGVy V2lkdGgoKSx0b3A6ZC50b3ArYS5vdXRlckhlaWdodCgpfTp7bGVmdDpkLmxlZnQs dG9wOmQudG9wK2Eub3V0ZXJIZWlnaHQoKX19LGxlZnQ6ZnVuY3Rpb24oYSxiKXt2 YXIgYz1Gb3VuZGF0aW9uLmxpYnMuZHJvcGRvd24uZGlycy5fYmFzZS5jYWxsKHRo aXMsYSxiKTtyZXR1cm4gdGhpcy5hZGRDbGFzcygiZHJvcC1sZWZ0IiksMT09Yy5t aXNzTGVmdCYmKGMubGVmdD1jLmxlZnQrdGhpcy5vdXRlcldpZHRoKCksYy50b3A9 Yy50b3ArYS5vdXRlckhlaWdodCgpLHRoaXMucmVtb3ZlQ2xhc3MoImRyb3AtbGVm dCIpKSx7bGVmdDpjLmxlZnQtdGhpcy5vdXRlcldpZHRoKCksdG9wOmMudG9wfX0s cmlnaHQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1Gb3VuZGF0aW9uLmxpYnMuZHJvcGRv d24uZGlycy5fYmFzZS5jYWxsKHRoaXMsYSxiKTt0aGlzLmFkZENsYXNzKCJkcm9w LXJpZ2h0IiksMT09Yy5taXNzUmlnaHQ/KGMubGVmdD1jLmxlZnQtdGhpcy5vdXRl cldpZHRoKCksYy50b3A9Yy50b3ArYS5vdXRlckhlaWdodCgpLHRoaXMucmVtb3Zl Q2xhc3MoImRyb3AtcmlnaHQiKSk6Yy50cmlnZ2VyZWRSaWdodD0hMDt2YXIgZD1G b3VuZGF0aW9uLmxpYnMuZHJvcGRvd247cmV0dXJuKGEub3V0ZXJXaWR0aCgpPHRo aXMub3V0ZXJXaWR0aCgpfHxkLnNtYWxsKCl8fHRoaXMuaGFzQ2xhc3MoYi5tZWdh X21lbnUpKSYmZC5hZGp1c3RfcGlwKHRoaXMsYSxiLGMpLHtsZWZ0OmMubGVmdCth Lm91dGVyV2lkdGgoKSx0b3A6Yy50b3B9fX0sYWRqdXN0X3BpcDpmdW5jdGlvbihh LGIsYyxkKXt2YXIgZT1Gb3VuZGF0aW9uLnN0eWxlc2hlZXQsZj04O2EuaGFzQ2xh c3MoYy5tZWdhX2NsYXNzKT9mPWQubGVmdCtiLm91dGVyV2lkdGgoKS8yLTg6dGhp cy5zbWFsbCgpJiYoZis9ZC5sZWZ0LTgpLHRoaXMucnVsZV9pZHg9ZS5jc3NSdWxl cy5sZW5ndGg7dmFyIGc9Ii5mLWRyb3Bkb3duLm9wZW46YmVmb3JlIixoPSIuZi1k cm9wZG93bi5vcGVuOmFmdGVyIixpPSJsZWZ0OiAiK2YrInB4OyIsaj0ibGVmdDog IisoZi0xKSsicHg7IjsxPT1kLm1pc3NSaWdodCYmKGY9YS5vdXRlcldpZHRoKCkt MjMsZz0iLmYtZHJvcGRvd24ub3BlbjpiZWZvcmUiLGg9Ii5mLWRyb3Bkb3duLm9w ZW46YWZ0ZXIiLGk9ImxlZnQ6ICIrZisicHg7IixqPSJsZWZ0OiAiKyhmLTEpKyJw eDsiKSwxPT1kLnRyaWdnZXJlZFJpZ2h0JiYoZz0iLmYtZHJvcGRvd24ub3Blbjpi ZWZvcmUiLGg9Ii5mLWRyb3Bkb3duLm9wZW46YWZ0ZXIiLGk9ImxlZnQ6LTEycHg7 IixqPSJsZWZ0Oi0xNHB4OyIpLGUuaW5zZXJ0UnVsZT8oZS5pbnNlcnRSdWxlKFtn LCJ7IixpLCJ9Il0uam9pbigiICIpLHRoaXMucnVsZV9pZHgpLGUuaW5zZXJ0UnVs ZShbaCwieyIsaiwifSJdLmpvaW4oIiAiKSx0aGlzLnJ1bGVfaWR4KzEpKTooZS5h ZGRSdWxlKGcsaSx0aGlzLnJ1bGVfaWR4KSxlLmFkZFJ1bGUoaCxqLHRoaXMucnVs ZV9pZHgrMSkpfSxjbGVhcl9pZHg6ZnVuY3Rpb24oKXt2YXIgYT1Gb3VuZGF0aW9u LnN0eWxlc2hlZXQ7InVuZGVmaW5lZCIhPXR5cGVvZiB0aGlzLnJ1bGVfaWR4JiYo YS5kZWxldGVSdWxlKHRoaXMucnVsZV9pZHgpLGEuZGVsZXRlUnVsZSh0aGlzLnJ1 bGVfaWR4KSxkZWxldGUgdGhpcy5ydWxlX2lkeCl9LHNtYWxsOmZ1bmN0aW9uKCl7 cmV0dXJuIG1hdGNoTWVkaWEoRm91bmRhdGlvbi5tZWRpYV9xdWVyaWVzLnNtYWxs KS5tYXRjaGVzJiYhbWF0Y2hNZWRpYShGb3VuZGF0aW9uLm1lZGlhX3F1ZXJpZXMu bWVkaXVtKS5tYXRjaGVzfSxvZmY6ZnVuY3Rpb24oKXt0aGlzLlModGhpcy5zY29w ZSkub2ZmKCIuZm5kdG4uZHJvcGRvd24iKSx0aGlzLlMoImh0bWwsIGJvZHkiKS5v ZmYoIi5mbmR0bi5kcm9wZG93biIpLHRoaXMuUyhiKS5vZmYoIi5mbmR0bi5kcm9w ZG93biIpLHRoaXMuUygiW2RhdGEtZHJvcGRvd24tY29udGVudF0iKS5vZmYoIi5m bmR0bi5kcm9wZG93biIpfSxyZWZsb3c6ZnVuY3Rpb24oKXt9fX0oalF1ZXJ5LHdp bmRvdyx3aW5kb3cuZG9jdW1lbnQpOw0KOy8vIGpzL2xpYi9waHBfanMuanMKIWZ1 bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhKXZhciBhPWZ1bmN0aW9u KCl7cmV0dXJuIHdpbmRvdyE9dGhpcyYmdGhpcy5pbml0P3RoaXMuaW5pdCgpOm5l dyBhfTthLnByb3RvdHlwZT17aW5pdDpmdW5jdGlvbigpe30sbWQ1OmZ1bmN0aW9u KGEpe3ZhciBiPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE8PGJ8YT4+PjMyLWJ9LGM9 ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGUsZixnO3JldHVybiBlPTIxNDc0ODM2NDgm YSxmPTIxNDc0ODM2NDgmYixjPTEwNzM3NDE4MjQmYSxkPTEwNzM3NDE4MjQmYixn PSgxMDczNzQxODIzJmEpKygxMDczNzQxODIzJmIpLGMmZD8yMTQ3NDgzNjQ4Xmde ZV5mOmN8ZD8xMDczNzQxODI0Jmc/MzIyMTIyNTQ3Ml5nXmVeZjoxMDczNzQxODI0 XmdeZV5mOmdeZV5mfSxkPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYSZifH5hJmN9 LGU9ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBhJmN8YiZ+Y30sZj1mdW5jdGlvbihh LGIsYyl7cmV0dXJuIGFeYl5jfSxnPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYl4o YXx+Yyl9LGg9ZnVuY3Rpb24oYSxlLGYsZyxoLGksail7cmV0dXJuIGE9YyhhLGMo YyhkKGUsZixnKSxoKSxqKSksYyhiKGEsaSksZSl9LGk9ZnVuY3Rpb24oYSxkLGYs ZyxoLGksail7cmV0dXJuIGE9YyhhLGMoYyhlKGQsZixnKSxoKSxqKSksYyhiKGEs aSksZCl9LGo9ZnVuY3Rpb24oYSxkLGUsZyxoLGksail7cmV0dXJuIGE9YyhhLGMo YyhmKGQsZSxnKSxoKSxqKSksYyhiKGEsaSksZCl9LGs9ZnVuY3Rpb24oYSxkLGUs ZixoLGksail7cmV0dXJuIGE9YyhhLGMoYyhnKGQsZSxmKSxoKSxqKSksYyhiKGEs aSksZCl9LGw9ZnVuY3Rpb24oYSl7dmFyIGIsYz1hLmxlbmd0aCxkPWMrOCxlPShk LWQlNjQpLzY0LGY9MTYqKGUrMSksZz1BcnJheShmLTEpLGg9MCxpPTA7d2hpbGUo aTxjKWI9KGktaSU0KS80LGg9aSU0KjgsZ1tiXT1nW2JdfGEuY2hhckNvZGVBdChp KTw8aCxpKys7cmV0dXJuIGI9KGktaSU0KS80LGg9aSU0KjgsZ1tiXT1nW2JdfDEy ODw8aCxnW2YtMl09Yzw8MyxnW2YtMV09Yz4+PjI5LGd9LG09ZnVuY3Rpb24oYSl7 dmFyIGI9IiIsYz0iIixkLGU7Zm9yKGU9MDtlPD0zO2UrKylkPWE+Pj44KmUmMjU1 LGM9IjAiK2QudG9TdHJpbmcoMTYpLGIrPWMuc3Vic3RyKGMubGVuZ3RoLTIsMik7 cmV0dXJuIGJ9LG49QXJyYXkoKSxvLHAscSxyLHMsdCx1LHYsdyx4PTcseT0xMix6 PTE3LEE9MjIsQj01LEM9OSxEPTE0LEU9MjAsRj00LEc9MTEsSD0xNixJPTIzLEo9 NixLPTEwLEw9MTUsTT0yMTtmb3IoYT10aGlzLnV0ZjhfZW5jb2RlKGEpLG49bChh KSx0PTE3MzI1ODQxOTMsdT00MDIzMjMzNDE3LHY9MjU2MjM4MzEwMix3PTI3MTcz Mzg3OCxvPTA7bzxuLmxlbmd0aDtvKz0xNilwPXQscT11LHI9dixzPXcsdD1oKHQs dSx2LHcsbltvKzBdLHgsMzYxNDA5MDM2MCksdz1oKHcsdCx1LHYsbltvKzFdLHks MzkwNTQwMjcxMCksdj1oKHYsdyx0LHUsbltvKzJdLHosNjA2MTA1ODE5KSx1PWgo dSx2LHcsdCxuW28rM10sQSwzMjUwNDQxOTY2KSx0PWgodCx1LHYsdyxuW28rNF0s eCw0MTE4NTQ4Mzk5KSx3PWgodyx0LHUsdixuW28rNV0seSwxMjAwMDgwNDI2KSx2 PWgodix3LHQsdSxuW28rNl0seiwyODIxNzM1OTU1KSx1PWgodSx2LHcsdCxuW28r N10sQSw0MjQ5MjYxMzEzKSx0PWgodCx1LHYsdyxuW28rOF0seCwxNzcwMDM1NDE2 KSx3PWgodyx0LHUsdixuW28rOV0seSwyMzM2NTUyODc5KSx2PWgodix3LHQsdSxu W28rMTBdLHosNDI5NDkyNTIzMyksdT1oKHUsdix3LHQsbltvKzExXSxBLDIzMDQ1 NjMxMzQpLHQ9aCh0LHUsdix3LG5bbysxMl0seCwxODA0NjAzNjgyKSx3PWgodyx0 LHUsdixuW28rMTNdLHksNDI1NDYyNjE5NSksdj1oKHYsdyx0LHUsbltvKzE0XSx6 LDI3OTI5NjUwMDYpLHU9aCh1LHYsdyx0LG5bbysxNV0sQSwxMjM2NTM1MzI5KSx0 PWkodCx1LHYsdyxuW28rMV0sQiw0MTI5MTcwNzg2KSx3PWkodyx0LHUsdixuW28r Nl0sQywzMjI1NDY1NjY0KSx2PWkodix3LHQsdSxuW28rMTFdLEQsNjQzNzE3NzEz KSx1PWkodSx2LHcsdCxuW28rMF0sRSwzOTIxMDY5OTk0KSx0PWkodCx1LHYsdyxu W28rNV0sQiwzNTkzNDA4NjA1KSx3PWkodyx0LHUsdixuW28rMTBdLEMsMzgwMTYw ODMpLHY9aSh2LHcsdCx1LG5bbysxNV0sRCwzNjM0NDg4OTYxKSx1PWkodSx2LHcs dCxuW28rNF0sRSwzODg5NDI5NDQ4KSx0PWkodCx1LHYsdyxuW28rOV0sQiw1Njg0 NDY0MzgpLHc9aSh3LHQsdSx2LG5bbysxNF0sQywzMjc1MTYzNjA2KSx2PWkodix3 LHQsdSxuW28rM10sRCw0MTA3NjAzMzM1KSx1PWkodSx2LHcsdCxuW28rOF0sRSwx MTYzNTMxNTAxKSx0PWkodCx1LHYsdyxuW28rMTNdLEIsMjg1MDI4NTgyOSksdz1p KHcsdCx1LHYsbltvKzJdLEMsNDI0MzU2MzUxMiksdj1pKHYsdyx0LHUsbltvKzdd LEQsMTczNTMyODQ3MyksdT1pKHUsdix3LHQsbltvKzEyXSxFLDIzNjgzNTk1NjIp LHQ9aih0LHUsdix3LG5bbys1XSxGLDQyOTQ1ODg3MzgpLHc9aih3LHQsdSx2LG5b bys4XSxHLDIyNzIzOTI4MzMpLHY9aih2LHcsdCx1LG5bbysxMV0sSCwxODM5MDMw NTYyKSx1PWoodSx2LHcsdCxuW28rMTRdLEksNDI1OTY1Nzc0MCksdD1qKHQsdSx2 LHcsbltvKzFdLEYsMjc2Mzk3NTIzNiksdz1qKHcsdCx1LHYsbltvKzRdLEcsMTI3 Mjg5MzM1Myksdj1qKHYsdyx0LHUsbltvKzddLEgsNDEzOTQ2OTY2NCksdT1qKHUs dix3LHQsbltvKzEwXSxJLDMyMDAyMzY2NTYpLHQ9aih0LHUsdix3LG5bbysxM10s Riw2ODEyNzkxNzQpLHc9aih3LHQsdSx2LG5bbyswXSxHLDM5MzY0MzAwNzQpLHY9 aih2LHcsdCx1LG5bbyszXSxILDM1NzI0NDUzMTcpLHU9aih1LHYsdyx0LG5bbys2 XSxJLDc2MDI5MTg5KSx0PWoodCx1LHYsdyxuW28rOV0sRiwzNjU0NjAyODA5KSx3 PWoodyx0LHUsdixuW28rMTJdLEcsMzg3MzE1MTQ2MSksdj1qKHYsdyx0LHUsbltv KzE1XSxILDUzMDc0MjUyMCksdT1qKHUsdix3LHQsbltvKzJdLEksMzI5OTYyODY0 NSksdD1rKHQsdSx2LHcsbltvKzBdLEosNDA5NjMzNjQ1Miksdz1rKHcsdCx1LHYs bltvKzddLEssMTEyNjg5MTQxNSksdj1rKHYsdyx0LHUsbltvKzE0XSxMLDI4Nzg2 MTIzOTEpLHU9ayh1LHYsdyx0LG5bbys1XSxNLDQyMzc1MzMyNDEpLHQ9ayh0LHUs dix3LG5bbysxMl0sSiwxNzAwNDg1NTcxKSx3PWsodyx0LHUsdixuW28rM10sSywy Mzk5OTgwNjkwKSx2PWsodix3LHQsdSxuW28rMTBdLEwsNDI5MzkxNTc3MyksdT1r KHUsdix3LHQsbltvKzFdLE0sMjI0MDA0NDQ5NyksdD1rKHQsdSx2LHcsbltvKzhd LEosMTg3MzMxMzM1OSksdz1rKHcsdCx1LHYsbltvKzE1XSxLLDQyNjQzNTU1NTIp LHY9ayh2LHcsdCx1LG5bbys2XSxMLDI3MzQ3Njg5MTYpLHU9ayh1LHYsdyx0LG5b bysxM10sTSwxMzA5MTUxNjQ5KSx0PWsodCx1LHYsdyxuW28rNF0sSiw0MTQ5NDQ0 MjI2KSx3PWsodyx0LHUsdixuW28rMTFdLEssMzE3NDc1NjkxNyksdj1rKHYsdyx0 LHUsbltvKzJdLEwsNzE4Nzg3MjU5KSx1PWsodSx2LHcsdCxuW28rOV0sTSwzOTUx NDgxNzQ1KSx0PWModCxwKSx1PWModSxxKSx2PWModixyKSx3PWModyxzKTt2YXIg Tj1tKHQpK20odSkrbSh2KSttKHcpO3JldHVybiBOLnRvTG93ZXJDYXNlKCl9LHV0 ZjhfZW5jb2RlOmZ1bmN0aW9uKGEpe2E9YS5yZXBsYWNlKC9cclxuL2csIlxuIik7 Zm9yKHZhciBiPVtdLGM9MCxkPTA7ZDxhLmxlbmd0aDtkKyspe3ZhciBlPWEuY2hh ckNvZGVBdChkKTtlPDEyOD9iW2MrK109U3RyaW5nLmZyb21DaGFyQ29kZShlKTpl PjEyNyYmZTwyMDQ4PyhiW2MrK109U3RyaW5nLmZyb21DaGFyQ29kZShlPj42fDE5 MiksYltjKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoNjMmZXwxMjgpKTooYltjKytd PVN0cmluZy5mcm9tQ2hhckNvZGUoZT4+MTJ8MjI0KSxiW2MrK109U3RyaW5nLmZy b21DaGFyQ29kZShlPj42JjYzfDEyOCksYltjKytdPVN0cmluZy5mcm9tQ2hhckNv ZGUoNjMmZXwxMjgpKX1yZXR1cm4gYi5qb2luKCIiKX19LHdpbmRvdy4kUD1hKCl9 KCk7DQo7Ly8ganMvbGliL3NwcmludGYuanMKIWZ1bmN0aW9uKGEpe2Z1bmN0aW9u IGIoKXt2YXIgYT1hcmd1bWVudHNbMF0sYz1iLmNhY2hlO3JldHVybiBjW2FdJiZj Lmhhc093blByb3BlcnR5KGEpfHwoY1thXT1iLnBhcnNlKGEpKSxiLmZvcm1hdC5j YWxsKG51bGwsY1thXSxhcmd1bWVudHMpfWZ1bmN0aW9uIGMoYSl7cmV0dXJuIE9i amVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKS5zbGljZSg4LC0xKS50b0xv d2VyQ2FzZSgpfWZ1bmN0aW9uIGQoYSxiKXtyZXR1cm4gQXJyYXkoYisxKS5qb2lu KGEpfXZhciBlPXtub3Rfc3RyaW5nOi9bXnNdLyxudW1iZXI6L1tkaWVmXS8sdGV4 dDovXlteXHgyNV0rLyxtb2R1bG86L15ceDI1ezJ9LyxwbGFjZWhvbGRlcjovXlx4 MjUoPzooWzEtOV1cZCopXCR8XCgoW15cKV0rKVwpKT8oXCspPygwfCdbXiRdKT8o LSk/KFxkKyk/KD86XC4oXGQrKSk/KFtiLWZpb3N1eFhdKS8sa2V5Oi9eKFthLXpf XVthLXpfXGRdKikvaSxrZXlfYWNjZXNzOi9eXC4oW2Etel9dW2Etel9cZF0qKS9p LGluZGV4X2FjY2VzczovXlxbKFxkKylcXS8sc2lnbjovXltcK1wtXS99O2IuZm9y bWF0PWZ1bmN0aW9uKGEsZil7dmFyIGc9MSxoPWEubGVuZ3RoLGk9IiIsaixrPVtd LGwsbSxuLG8scCxxLHI9ITAscz0iIjtmb3IobD0wO2w8aDtsKyspaWYoaT1jKGFb bF0pLCJzdHJpbmciPT09aSlrW2subGVuZ3RoXT1hW2xdO2Vsc2UgaWYoImFycmF5 Ij09PWkpe2lmKG49YVtsXSxuWzJdKWZvcihqPWZbZ10sbT0wO208blsyXS5sZW5n dGg7bSsrKXtpZighai5oYXNPd25Qcm9wZXJ0eShuWzJdW21dKSl0aHJvdyBuZXcg RXJyb3IoYigiW3NwcmludGZdIHByb3BlcnR5ICclcycgZG9lcyBub3QgZXhpc3Qi LG5bMl1bbV0pKTtqPWpbblsyXVttXV19ZWxzZSBqPW5bMV0/ZltuWzFdXTpmW2cr K107aWYoImZ1bmN0aW9uIj09YyhqKSYmKGo9aigpKSxlLm5vdF9zdHJpbmcudGVz dChuWzhdKSYmIm51bWJlciIhPWMoaikmJmlzTmFOKGopKXRocm93IG5ldyBUeXBl RXJyb3IoYigiW3NwcmludGZdIGV4cGVjdGluZyBudW1iZXIgYnV0IGZvdW5kICVz IixjKGopKSk7c3dpdGNoKGUubnVtYmVyLnRlc3Qobls4XSkmJihyPWo+PTApLG5b OF0pe2Nhc2UiYiI6aj1qLnRvU3RyaW5nKDIpO2JyZWFrO2Nhc2UiYyI6aj1TdHJp bmcuZnJvbUNoYXJDb2RlKGopO2JyZWFrO2Nhc2UiZCI6Y2FzZSJpIjpqPXBhcnNl SW50KGosMTApO2JyZWFrO2Nhc2UiZSI6aj1uWzddP2oudG9FeHBvbmVudGlhbChu WzddKTpqLnRvRXhwb25lbnRpYWwoKTticmVhaztjYXNlImYiOmo9bls3XT9wYXJz ZUZsb2F0KGopLnRvRml4ZWQobls3XSk6cGFyc2VGbG9hdChqKTticmVhaztjYXNl Im8iOmo9ai50b1N0cmluZyg4KTticmVhaztjYXNlInMiOmo9KGo9U3RyaW5nKGop KSYmbls3XT9qLnN1YnN0cmluZygwLG5bN10pOmo7YnJlYWs7Y2FzZSJ1IjpqPj4+ PTA7YnJlYWs7Y2FzZSJ4IjpqPWoudG9TdHJpbmcoMTYpO2JyZWFrO2Nhc2UiWCI6 aj1qLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSFlLm51bWJlci50ZXN0KG5b OF0pfHxyJiYhblszXT9zPSIiOihzPXI/IisiOiItIixqPWoudG9TdHJpbmcoKS5y ZXBsYWNlKGUuc2lnbiwiIikpLHA9bls0XT8iMCI9PT1uWzRdPyIwIjpuWzRdLmNo YXJBdCgxKToiICIscT1uWzZdLShzK2opLmxlbmd0aCxvPW5bNl0mJnE+MD9kKHAs cSk6IiIsa1trLmxlbmd0aF09bls1XT9zK2orbzoiMCI9PT1wP3MrbytqOm8rcytq fXJldHVybiBrLmpvaW4oIiIpfSxiLmNhY2hlPXt9LGIucGFyc2U9ZnVuY3Rpb24o YSl7dmFyIGI9YSxjPVtdLGQ9W10sZj0wO3doaWxlKGIpe2lmKG51bGwhPT0oYz1l LnRleHQuZXhlYyhiKSkpZFtkLmxlbmd0aF09Y1swXTtlbHNlIGlmKG51bGwhPT0o Yz1lLm1vZHVsby5leGVjKGIpKSlkW2QubGVuZ3RoXT0iJSI7ZWxzZXtpZihudWxs PT09KGM9ZS5wbGFjZWhvbGRlci5leGVjKGIpKSl0aHJvdyBuZXcgU3ludGF4RXJy b3IoIltzcHJpbnRmXSB1bmV4cGVjdGVkIHBsYWNlaG9sZGVyIik7aWYoY1syXSl7 Znw9MTt2YXIgZz1bXSxoPWNbMl0saT1bXTtpZihudWxsPT09KGk9ZS5rZXkuZXhl YyhoKSkpdGhyb3cgbmV3IFN5bnRheEVycm9yKCJbc3ByaW50Zl0gZmFpbGVkIHRv IHBhcnNlIG5hbWVkIGFyZ3VtZW50IGtleSIpO2dbZy5sZW5ndGhdPWlbMV07d2hp bGUoIiIhPT0oaD1oLnN1YnN0cmluZyhpWzBdLmxlbmd0aCkpKWlmKG51bGwhPT0o aT1lLmtleV9hY2Nlc3MuZXhlYyhoKSkpZ1tnLmxlbmd0aF09aVsxXTtlbHNle2lm KG51bGw9PT0oaT1lLmluZGV4X2FjY2Vzcy5leGVjKGgpKSl0aHJvdyBuZXcgU3lu dGF4RXJyb3IoIltzcHJpbnRmXSBmYWlsZWQgdG8gcGFyc2UgbmFtZWQgYXJndW1l bnQga2V5Iik7Z1tnLmxlbmd0aF09aVsxXX1jWzJdPWd9ZWxzZSBmfD0yO2lmKDM9 PT1mKXRocm93IG5ldyBFcnJvcigiW3NwcmludGZdIG1peGluZyBwb3NpdGlvbmFs IGFuZCBuYW1lZCBwbGFjZWhvbGRlcnMgaXMgbm90ICh5ZXQpIHN1cHBvcnRlZCIp O2RbZC5sZW5ndGhdPWN9Yj1iLnN1YnN0cmluZyhjWzBdLmxlbmd0aCl9cmV0dXJu IGR9O3ZhciBmPWZ1bmN0aW9uKGEsYyxkKXtyZXR1cm4gZD0oY3x8W10pLnNsaWNl KDApLGQuc3BsaWNlKDAsMCxhKSxiLmFwcGx5KG51bGwsZCl9OyJ1bmRlZmluZWQi IT10eXBlb2YgZXhwb3J0cz8oZXhwb3J0cy5zcHJpbnRmPWIsZXhwb3J0cy52c3By aW50Zj1mKTooYS5zcHJpbnRmPWIsYS52c3ByaW50Zj1mLCJmdW5jdGlvbiI9PXR5 cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQmJmRlZmluZShmdW5jdGlvbigpe3JldHVy bntzcHJpbnRmOmIsdnNwcmludGY6Zn19KSl9KCJ1bmRlZmluZWQiPT10eXBlb2Yg d2luZG93P3RoaXM6d2luZG93KTsNCjsvLyBqcy9saWIvanMuY29va2llLmpzCiFm dW5jdGlvbihhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUu YW1kKWRlZmluZShhKTtlbHNlIGlmKCJvYmplY3QiPT10eXBlb2YgZXhwb3J0cylt b2R1bGUuZXhwb3J0cz1hKCk7ZWxzZXt2YXIgYj13aW5kb3cuQ29va2llcyxjPXdp bmRvdy5Db29raWVzPWEod2luZG93LmpRdWVyeSk7Yy5ub0NvbmZsaWN0PWZ1bmN0 aW9uKCl7cmV0dXJuIHdpbmRvdy5Db29raWVzPWIsY319fShmdW5jdGlvbigpe2Z1 bmN0aW9uIGEoKXtmb3IodmFyIGE9MCxiPXt9O2E8YXJndW1lbnRzLmxlbmd0aDth Kyspe3ZhciBjPWFyZ3VtZW50c1thXTtmb3IodmFyIGQgaW4gYyliW2RdPWNbZF19 cmV0dXJuIGJ9ZnVuY3Rpb24gYihjKXtmdW5jdGlvbiBkKGIsZSxmKXt2YXIgZztp Zihhcmd1bWVudHMubGVuZ3RoPjEpe2lmKGY9YSh7cGF0aDoiLyJ9LGQuZGVmYXVs dHMsZiksIm51bWJlciI9PXR5cGVvZiBmLmV4cGlyZXMpe3ZhciBoPW5ldyBEYXRl O2guc2V0TWlsbGlzZWNvbmRzKGguZ2V0TWlsbGlzZWNvbmRzKCkrODY0ZTUqZi5l eHBpcmVzKSxmLmV4cGlyZXM9aH10cnl7Zz1KU09OLnN0cmluZ2lmeShlKSwvXltc e1xbXS8udGVzdChnKSYmKGU9Zyl9Y2F0Y2goaSl7fXJldHVybiBlPWVuY29kZVVS SUNvbXBvbmVudChTdHJpbmcoZSkpLGU9ZS5yZXBsYWNlKC8lKDIzfDI0fDI2fDJC fDNBfDNDfDNFfDNEfDJGfDNGfDQwfDVCfDVEfDVFfDYwfDdCfDdEfDdDKS9nLGRl Y29kZVVSSUNvbXBvbmVudCksYj1lbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGIp KSxiPWIucmVwbGFjZSgvJSgyM3wyNHwyNnwyQnw1RXw2MHw3QykvZyxkZWNvZGVV UklDb21wb25lbnQpLGI9Yi5yZXBsYWNlKC9bXChcKV0vZyxlc2NhcGUpLGRvY3Vt ZW50LmNvb2tpZT1bYiwiPSIsZSxmLmV4cGlyZXMmJiI7IGV4cGlyZXM9IitmLmV4 cGlyZXMudG9VVENTdHJpbmcoKSxmLnBhdGgmJiI7IHBhdGg9IitmLnBhdGgsZi5k b21haW4mJiI7IGRvbWFpbj0iK2YuZG9tYWluLGYuc2VjdXJlPyI7IHNlY3VyZSI6 IiJdLmpvaW4oIiIpfWJ8fChnPXt9KTtmb3IodmFyIGo9ZG9jdW1lbnQuY29va2ll P2RvY3VtZW50LmNvb2tpZS5zcGxpdCgiOyAiKTpbXSxrPS8oJVswLTlBLVpdezJ9 KSsvZyxsPTA7bDxqLmxlbmd0aDtsKyspe3ZhciBtPWpbbF0uc3BsaXQoIj0iKSxu PW1bMF0ucmVwbGFjZShrLGRlY29kZVVSSUNvbXBvbmVudCksbz1tLnNsaWNlKDEp LmpvaW4oIj0iKTsnIic9PT1vLmNoYXJBdCgwKSYmKG89by5zbGljZSgxLC0xKSk7 dHJ5e2lmKG89YyYmYyhvLG4pfHxvLnJlcGxhY2UoayxkZWNvZGVVUklDb21wb25l bnQpLHRoaXMuanNvbil0cnl7bz1KU09OLnBhcnNlKG8pfWNhdGNoKGkpe31pZihi PT09bil7Zz1vO2JyZWFrfWJ8fChnW25dPW8pfWNhdGNoKGkpe319cmV0dXJuIGd9 cmV0dXJuIGQuZ2V0PWQuc2V0PWQsZC5nZXRKU09OPWZ1bmN0aW9uKCl7cmV0dXJu IGQuYXBwbHkoe2pzb246ITB9LFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSl9LGQu ZGVmYXVsdHM9e30sZC5yZW1vdmU9ZnVuY3Rpb24oYixjKXtkKGIsIiIsYShjLHtl eHBpcmVzOi0xfSkpfSxkLndpdGhDb252ZXJ0ZXI9YixkfXJldHVybiBiKCl9KTsN CjsvLyBqcy9iYi5jb29raWUuanMKQkIuQ29va2llcz1mdW5jdGlvbigpe3JldHVy biBDb29raWVzLmRlZmF1bHRzPSQuZXh0ZW5kKENvb2tpZXMuZGVmYXVsdHMsQkIu Y29va2llX2RlZmF1bHRzKSx7Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBDb29raWVz LmdldChhKX0sc2V0OmZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPVthLGJdLGY9ZHx8 e307aWYoISQuaXNQbGFpbk9iamVjdChmKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJh dHRyaWJ1dGVzIGlzIG5vdCBhbiBvYmplY3QiKTtpZigiZXhwaXJlcyJpbiBmKXRo cm93IG5ldyBFcnJvcigidW5leHBlY3RlZCBhdHRyaWJ1dGVzLmV4cGlyZXMiKTtp ZihjPWN8fCJQRVJTSVNURU5UIiwiUEVSU0lTVEVOVCI9PT1jKWYuZXhwaXJlcz0z NjUwO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBjKWYuZXhwaXJlcz1jO2Vsc2Ug aWYoIlNFU1NJT04iIT09Yyl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHZhbHVlIGZv ciBleHBpcmVzOiAiK2MpO3JldHVybiAkLmlzRW1wdHlPYmplY3QoZil8fGUucHVz aChmKSxDb29raWVzLnNldC5hcHBseShudWxsLGUpfSwiZGVsZXRlIjpmdW5jdGlv bihhLGIpe0Nvb2tpZXMucmVtb3ZlLmFwcGx5KG51bGwsW10uc2xpY2UuY2FsbChh cmd1bWVudHMpKX19fSgpOw0KOy8vIGpzL21haW4uanMKZnVuY3Rpb24gaW1nRml0 KGEsYil7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBhLm5hdHVyYWxIZWlnaHQm JihhLm5hdHVyYWxIZWlnaHQ9YS5oZWlnaHQsYS5uYXR1cmFsV2lkdGg9YS53aWR0 aCksYS53aWR0aD5iPyhhLmhlaWdodD1NYXRoLnJvdW5kKGIvYS53aWR0aCphLmhl aWdodCksYS53aWR0aD1iLGEuc3R5bGUuY3Vyc29yPSJtb3ZlIiwhMSk6IShhLndp ZHRoPT1iJiZhLndpZHRoPGEubmF0dXJhbFdpZHRoKXx8KGEuaGVpZ2h0PWEubmF0 dXJhbEhlaWdodCxhLndpZHRoPWEubmF0dXJhbFdpZHRoLCExKX1mdW5jdGlvbiBy YW5kKGEsYil7cmV0dXJuIGErTWF0aC5mbG9vcigoYi1hKzEpKk1hdGgucmFuZG9t KCkpfWZ1bmN0aW9uIHNodWZmbGVBcnJheShhKXt2YXIgYj1hLmxlbmd0aCxjLGQ7 d2hpbGUoYilkPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpiLS0pLGM9YVtiXSxh W2JdPWFbZF0sYVtkXT1jfWZ1bmN0aW9uIGdldEVsVGV4dChhKXt2YXIgYj0iIjty ZXR1cm4gYj12b2lkIDAhPT1hLnRleHRDb250ZW50P2EudGV4dENvbnRlbnQ6dm9p ZCAwIT09YS5pbm5lclRleHQ/YS5pbm5lclRleHQ6alF1ZXJ5KGEpLnRleHQoKX1m dW5jdGlvbiBlc2NIVE1MKGEpe3JldHVybiBhLnJlcGxhY2UoLzwvZywiJmx0OyIp fWZ1bmN0aW9uIGNmbShhKXtyZXR1cm4gd2luZG93LmNvbmZpcm0oYSl9ZnVuY3Rp b24gYmJfYWxlcnQoYSxiKXthKz0iIjt2YXIgYz1hLnJlcGxhY2UoL1xuL2csIjxi cj4iKTtyZXR1cm4gJCgiI2JiLWFsZXJ0LW1zZyIpLmh0bWwoYyksJCgiI2JiLWFs ZXJ0LWJveCIpLnRvZ2dsZUNsYXNzKCJiYi1hbGVydC1lcnIiLDE9PWIpLm1vZGFs KCksITF9ZnVuY3Rpb24gcG9zdDJ1cmwoYSxiKXt2YXIgYz0kLmV4dGVuZCh7Zm9y bV90b2tlbjpCQi5mb3JtX3Rva2VufSxiKSxkPWRvY3VtZW50LmNyZWF0ZUVsZW1l bnQoImZvcm0iKTtkLnNldEF0dHJpYnV0ZSgiYWN0aW9uIixhKSxkLnNldEF0dHJp YnV0ZSgibWV0aG9kIiwicG9zdCIpLGQuc2V0QXR0cmlidXRlKCJ0YXJnZXQiLGMu dGFyZ2V0fHwiX3NlbGYiKTtmb3IodmFyIGUgaW4gYyl7dmFyIGY9ZG9jdW1lbnQu Y3JlYXRlRWxlbWVudCgiaW5wdXQiKTtmLnNldEF0dHJpYnV0ZSgidHlwZSIsImhp ZGRlbiIpLGYuc2V0QXR0cmlidXRlKCJuYW1lIixlKSxmLnNldEF0dHJpYnV0ZSgi dmFsdWUiLGNbZV0pLGQuYXBwZW5kQ2hpbGQoZil9cmV0dXJuIGRvY3VtZW50LmJv ZHkuYXBwZW5kQ2hpbGQoZCksZC5zdWJtaXQoKSwhMX1mdW5jdGlvbiBBamF4KGEs YixjKXt0aGlzLnVybD1hLHRoaXMudHlwZT1iLHRoaXMuZGF0YVR5cGU9Yyx0aGlz LmVycm9ycz17fX1CQi5yYW5kX251bT1NYXRoLnJvdW5kKDFlOSpNYXRoLnJhbmRv bSgpKSxCQi5yZWZlcnJlcj1kb2N1bWVudC5yZWZlcnJlcnx8InVua25vd24iLGZ1 bmN0aW9uKGEpe1siY291bnQiLCJkZWJ1ZyIsImRpcnhtbCIsImV4Y2VwdGlvbiIs Imdyb3VwIiwiZ3JvdXBDb2xsYXBzZWQiLCJncm91cEVuZCIsImxvZyIsInRhYmxl IiwidGltZSIsInRpbWVFbmQiLCJ0aW1lU3RhbXAiLCJ0cmFjZSJdLmZvckVhY2go ZnVuY3Rpb24oYil7YVtiXT1hW2JdfHxmdW5jdGlvbigpe319KX0od2luZG93LmNv bnNvbGU9d2luZG93LmNvbnNvbGV8fHt9KSwkLmJyb3dzZXI9ZnVuY3Rpb24oYSl7 dmFyIGI9e30sYz0vKGNocm9tZSlbIFwvXShbXHcuXSspLy5leGVjKGEpfHwvKHdl YmtpdClbIFwvXShbXHcuXSspLy5leGVjKGEpfHwvKG9wZXJhKSg/Oi4qdmVyc2lv bnwpWyBcL10oW1x3Ll0rKS8uZXhlYyhhKXx8Lyhtc2llKSAoW1x3Ll0rKS8uZXhl YyhhKXx8Lyh0cmlkZW50KSg/Oi4qPyBydjooW1x3Ll0rKXwpLy5leGVjKGEpfHxh LmluZGV4T2YoImNvbXBhdGlibGUiKTwwJiYvKG1vemlsbGEpKD86Lio/IHJ2Oihb XHcuXSspfCkvLmV4ZWMoYSl8fFtdO3JldHVybiBjWzFdPWNbMV18fCIiLGJbY1sx XV09ITAsYi52ZXJzaW9uPWNbMl0sYi5jaHJvbWU/Yi53ZWJraXQ9ITA6Yi53ZWJr aXQ/Yi5zYWZhcmk9ITA6Yi50cmlkZW50JiYoYi5tc2llPSEwKSxifShuYXZpZ2F0 b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpLCQuZWFjaChbImxvY2FsU3RvcmFn ZSIsInNlc3Npb25TdG9yYWdlIl0sZnVuY3Rpb24oYSxiKXtCQltiXT17c3VwcG9y dGVkOiEhd2luZG93W2JdLGdldDpmdW5jdGlvbihhKXtpZighdGhpcy5zdXBwb3J0 ZWQpcmV0dXJuIG51bGw7dmFyIGM9d2luZG93W2JdLmdldEl0ZW0oYSksZD1KU09O LnBhcnNlKGMpO3JldHVybiBkfSxzZXQ6ZnVuY3Rpb24oYSxjKXtpZih0aGlzLnN1 cHBvcnRlZCl0cnl7dmFyIGQ9SlNPTi5zdHJpbmdpZnkoYyk7d2luZG93W2JdLnNl dEl0ZW0oYSxkKX1jYXRjaChlKXt9fSxybTpmdW5jdGlvbihhKXt0aGlzLnN1cHBv cnRlZCYmd2luZG93W2JdLnJlbW92ZUl0ZW0oYSl9fX0pO3ZhciBNZW51PXtoaWRl U3BlZWQ6ImZhc3QiLG9mZnNldENvcnJlY3Rpb25fWDotNCxvZmZzZXRDb3JyZWN0 aW9uX1k6MixhY3RpdmVNZW51SWQ6bnVsbCxjbGlja2VkTWVudUlkOm51bGwsJHJv b3Q6bnVsbCwkbWVudTpudWxsLHBvc2l0aW9uaW5nVHlwZTpudWxsLG91dHNpZGVD bGlja1dhdGNoOiExLGNsaWNrZWQ6ZnVuY3Rpb24oYSl7YS5ibHVyKCksdGhpcy5j bGlja2VkTWVudUlkPXRoaXMuZ2V0TWVudUlkKGEpLHRoaXMuJG1lbnU9JCh0aGlz LmNsaWNrZWRNZW51SWQpLHRoaXMuJHJvb3Q9YSx0aGlzLnRvZ2dsZSgpfSxob3Zl cmVkOmZ1bmN0aW9uKGEpe3RoaXMuYWN0aXZlTWVudUlkJiZ0aGlzLmFjdGl2ZU1l bnVJZCE9PXRoaXMuZ2V0TWVudUlkKGEpJiZ0aGlzLmNsaWNrZWQoYSl9LHVuaG92 ZXJlZDpmdW5jdGlvbihhKXt9LGdldE1lbnVJZDpmdW5jdGlvbihhKXt2YXIgYj1h LmF0dHIoImhyZWYiKTtyZXR1cm4gYi5zdWJzdHIoYi5pbmRleE9mKCIjIikpfSxz ZXRMb2NhdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMuJHJvb3Qub2Zmc2V0KCk7 YS50b3ArPXRoaXMuJHJvb3QuaGVpZ2h0KCkrdGhpcy5vZmZzZXRDb3JyZWN0aW9u X1ksYS5sZWZ0Kz10aGlzLm9mZnNldENvcnJlY3Rpb25fWCx0aGlzLiRtZW51LmNz cyhhKX0sZml4TG9jYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLiRtZW51LGI9 cGFyc2VJbnQoYS5jc3MoImxlZnQiKSksYz0kKGRvY3VtZW50KS5zY3JvbGxMZWZ0 KCkrJCh3aW5kb3cpLndpZHRoKCktNixkPU1hdGgubWluKGIsTWF0aC5tYXgoMCxj LWEud2lkdGgoKSkpO2IhPWQmJmEuY3NzKCJsZWZ0IixkKTt2YXIgZT1wYXJzZUlu dChhLmNzcygidG9wIikpLGY9JChkb2N1bWVudCkuc2Nyb2xsVG9wKCkrJCh3aW5k b3cpLmhlaWdodCgpLTIwLGc9TWF0aC5taW4oZSxNYXRoLm1heCgwLGYtYS5oZWln aHQoKSkpO2UhPWcmJmEuY3NzKCJ0b3AiLGcpfSx0b2dnbGU6ZnVuY3Rpb24oKXt0 aGlzLmFjdGl2ZU1lbnVJZCYmdGhpcy5hY3RpdmVNZW51SWQhPT10aGlzLmNsaWNr ZWRNZW51SWQmJiQodGhpcy5hY3RpdmVNZW51SWQpLmhpZGUodGhpcy5oaWRlU3Bl ZWQpLHRoaXMuJG1lbnUuaXMoIjp2aXNpYmxlIik/KHRoaXMuJG1lbnUuaGlkZSh0 aGlzLmhpZGVTcGVlZCksdGhpcy5hY3RpdmVNZW51SWQ9bnVsbCk6KHRoaXMuc2hv d0NsaWNrZWRNZW51KCksdGhpcy5vdXRzaWRlQ2xpY2tXYXRjaHx8KCQoZG9jdW1l bnQpLm9uZSgibW91c2Vkb3duIixmdW5jdGlvbihhKXtNZW51LmhpZGVDbGlja1dh dGNoZXIoYSl9KSx0aGlzLm91dHNpZGVDbGlja1dhdGNoPSEwKSl9LHNob3dDbGlj a2VkTWVudTpmdW5jdGlvbigpe3RoaXMuc2V0TG9jYXRpb24oKSx0aGlzLmZpeExv Y2F0aW9uKCksdGhpcy4kbWVudS5jc3Moe2Rpc3BsYXk6ImJsb2NrIn0pLHRoaXMu YWN0aXZlTWVudUlkPXRoaXMuY2xpY2tlZE1lbnVJZH0saGlkZUNsaWNrV2F0Y2hl cjpmdW5jdGlvbihhKXt0aGlzLm91dHNpZGVDbGlja1dhdGNoPSExLHRoaXMuaGlk ZShhKX0saGlkZTpmdW5jdGlvbihhKXt0aGlzLiRtZW51JiZ0aGlzLiRtZW51Lmhp ZGUodGhpcy5oaWRlU3BlZWQpLHRoaXMuYWN0aXZlTWVudUlkPXRoaXMuY2xpY2tl ZE1lbnVJZD10aGlzLiRtZW51PW51bGx9fTtBamF4LnByb3RvdHlwZT17aW5pdDp7 fSxjYWxsYmFjazp7fSxzdGF0ZTp7fSxyZXF1ZXN0Ont9LHBhcmFtczp7fSxmb3Jt X3Rva2VuOkJCLmZvcm1fdG9rZW4sZXhlYzpmdW5jdGlvbihhKXt0aGlzLnJlcXVl c3RbYS5hY3Rpb25dPWEsYS5mb3JtX3Rva2VuPXRoaXMuZm9ybV90b2tlbiwkLmFq YXgoe3VybDp0aGlzLnVybCx0eXBlOnRoaXMudHlwZSxkYXRhVHlwZTp0aGlzLmRh dGFUeXBlLGRhdGE6YSxzdWNjZXNzOmFqYXguc3VjY2VzcyxlcnJvcjphamF4LmVy cm9yfSl9LHN1Y2Nlc3M6ZnVuY3Rpb24oYSl7dmFyIGI9YS5hY3Rpb247aWYoYS5y YXdfb3V0cHV0JiYkKCJib2R5IikucHJlcGVuZChhLnJhd19vdXRwdXQpLGEuc3Fs X2xvZyYmKCQoIiNzcWxMb2ciKS5wcmVwZW5kKGEuc3FsX2xvZysiPGhyPiIpLGZp eFNxbExvZygpKSxhLnVwZGF0ZV9pZHMpZm9yKHZhciBjIGluIGEudXBkYXRlX2lk cykkKCIjIitjKS5odG1sKGEudXBkYXRlX2lkc1tjXSk7aWYoYS5wcm9tcHRfcGFz c3dvcmQpJCgiI21vZC1hdXRoIikubW9kYWwoe2NsaWNrQ2xvc2U6ITEsZXNjYXBl Q2xvc2U6ITF9KSwkKCIjbW9kLWF1dGgtcGFzcyIpLmZvY3VzKCkudmFsKCIiKSwk KGRvY3VtZW50KS5vbigic3VibWl0Lm1vZC1hdXRoIiwiI21vZC1hdXRoLWZvcm0i LGZ1bmN0aW9uKGEpe3ZhciBjPWFqYXgucmVxdWVzdFtiXTtjLnVzZXJfcGFzc3dv cmQ9JCgiI21vZC1hdXRoLXBhc3MiKS52YWwoKSxjLnVzZXJfcGFzc3dvcmQ/YWph eC5leGVjKGMpOihhamF4LmNsZWFyQWN0aW9uU3RhdGUoYiksYWpheC5zaG93RXJy b3JNc2coIldyb25nIHBhc3N3b3JkIikpLCQubW9kYWwuY2xvc2UoKSxhLnByZXZl bnREZWZhdWx0KCksJChkb2N1bWVudCkub2ZmKCIubW9kLWF1dGgiKX0pLCQoZG9j dW1lbnQpLm9uKCJjbGljay5tb2QtYXV0aCIsJ2FbcmVsPSJtb2RhbDpjbG9zZSJd JyxmdW5jdGlvbihhKXthLnByZXZlbnREZWZhdWx0KCksYWpheC5jbGVhckFjdGlv blN0YXRlKGIpLCQoZG9jdW1lbnQpLm9mZigiLm1vZC1hdXRoIil9KTtlbHNlIGlm KGEucHJvbXB0X2NvbmZpcm0paWYod2luZG93LmNvbmZpcm0oYS5jb25maXJtX21z Zykpe3ZhciBkPWFqYXgucmVxdWVzdFtiXTtkLmNvbmZpcm1lZD0xLGFqYXguZXhl YyhkKX1lbHNlIGFqYXguY2xlYXJBY3Rpb25TdGF0ZShiKTtlbHNlIGEuZXJyb3Jf Y29kZT8oYWpheC5zaG93RXJyb3JNc2coYS5lcnJvcl9tc2cpLCQoIi5sb2FkaW5n LTEiKS5yZW1vdmVDbGFzcygibG9hZGluZy0xIikuaHRtbCgiZXJyb3IiKSk6KGFq YXguY2FsbGJhY2tbYl0oYSksYWpheC5jbGVhckFjdGlvblN0YXRlKGIpKX0sZXJy b3I6ZnVuY3Rpb24oYSxiKXt9LGNsZWFyQWN0aW9uU3RhdGU6ZnVuY3Rpb24oYSl7 YWpheC5zdGF0ZVthXT1hamF4LnJlcXVlc3RbYV09IiJ9LHNob3dFcnJvck1zZzpm dW5jdGlvbihhKXtiYl9hbGVydChhLCEwKX0sY2FsbEluaXRGbjpmdW5jdGlvbihh KXthLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBiPWFqYXgucGFyYW1zWyQodGhpcyku YXR0cigiaWQiKV0sYz1iLmFjdGlvbjtyZXR1cm4icmVhZHlUb1N1Ym1pdCIhPWFq YXguc3RhdGVbY10mJiJlcnJvciIhPWFqYXguc3RhdGVbY10mJihhamF4LnN0YXRl W2NdPSJyZWFkeVRvU3VibWl0Iix2b2lkIGFqYXguaW5pdFtjXShiKSl9LHNldFN0 YXR1c0JveFBvc2l0aW9uOmZ1bmN0aW9uKGEpe3ZhciBiPSQoZG9jdW1lbnQpLnNj cm9sbFRvcCgpLGM9JChkb2N1bWVudCkuc2Nyb2xsTGVmdCgpKyQod2luZG93KS53 aWR0aCgpLTgsZD1NYXRoLm1heCgwLGMtYS53aWR0aCgpKTthLmNzcyh7dG9wOmIs bGVmdDpkfSl9LG1ha2VFZGl0YWJsZTpmdW5jdGlvbihhLGIpe3ZhciBjPSQoIiMi K2EpLGQ9JCgiLmVkaXRhYmxlIixjKSxlPSQoIiNlZGl0YWJsZS10cGwtIitiKS5o dG1sKCk7ZC5oaWRlKCkuYWZ0ZXIoZSk7dmFyIGY9JCgiLmVkaXRhYmxlLWlucHV0 cyIsYyk7ImlucHV0IiE9YiYmInRleHRhcmVhIiE9Ynx8JCgiLmVkaXRhYmxlLXZh bHVlIixmKS52YWwoJC50cmltKGQudGV4dCgpKSksJCgiaW5wdXQuZWRpdGFibGUt c3VibWl0IixmKS5jbGljayhmdW5jdGlvbigpe3ZhciBiPWFqYXgucGFyYW1zW2Fd LGM9JCgiLmVkaXRhYmxlLXZhbHVlIiwiIyIrYSk7Yi52YWx1ZT0xPT1jLnNpemUo KT9jLnZhbCgpOmMuZmlsdGVyKCI6Y2hlY2tlZCIpLnZhbCgpLGIuc3VibWl0PSEw LGFqYXguaW5pdFtiLmFjdGlvbl0oYil9KSwkKCJpbnB1dC5lZGl0YWJsZS1jYW5j ZWwiLGYpLmNsaWNrKGZ1bmN0aW9uKCl7YWpheC5yZXN0b3JlRWRpdGFibGUoYSl9 KSxmLnNob3coKS5maW5kKCIuZWRpdGFibGUtdmFsdWUiKS5mb2N1cygpLGMucmVt b3ZlQ2xhc3MoImVkaXRhYmxlLWNvbnRhaW5lciIpfSxyZXN0b3JlRWRpdGFibGU6 ZnVuY3Rpb24oYSxiKXt2YXIgYz0kKCIjIithKSxkPSQoIi5lZGl0YWJsZSIsYyk7 JCgiLmVkaXRhYmxlLWlucHV0cyIsYykucmVtb3ZlKCksYiYmZC50ZXh0KGIpLGQu c2hvdygpLGFqYXguY2xlYXJBY3Rpb25TdGF0ZShhamF4LnBhcmFtc1thXS5hY3Rp b24pLGFqYXgucGFyYW1zW2FdLnN1Ym1pdD0hMSxjLmFkZENsYXNzKCJlZGl0YWJs ZS1jb250YWluZXIiKX19LHdpbmRvdy5hamF4PW5ldyBBamF4KCIvLyIrbG9jYXRp b24uaG9zdCsiL2ZvcnVtL2FqYXgucGhwIiwiUE9TVCIsImpzb24iKSxCQi5idWls ZF9zaGFyZV9idXR0b25zPWZ1bmN0aW9uKCl7aWYoJCgiI3NvYy1jb250YWluZXIi KS5sZW5ndGgpe3ZhciBhPXt9O2EuRmFjZWJvb2s9WzAsImh0dHA6Ly93d3cuZmFj ZWJvb2suY29tL3NoYXJlci5waHA/dT17VVJMfSZ0PXtUSVRMRX0iXSxhLlR3aXR0 ZXI9Wy0xOCwiaHR0cDovL3R3aXR0ZXIuY29tL3NoYXJlP3VybD17VVJMfSZ0ZXh0 PXtUSVRMRX0iXSxhWyLQktC60L7QvdGC0LDQutGC0LUiXT1bLTM2LCJodHRwOi8v dmtvbnRha3RlLnJ1L3NoYXJlLnBocD91cmw9e1VSTH0iXSxhLkxpdmVKb3VybmFs PVstNTQsImh0dHA6Ly93d3cubGl2ZWpvdXJuYWwuY29tL3VwZGF0ZS5ibWw/ZXZl bnQ9e1VSTH0mc3ViamVjdD17VElUTEV9Il0sYVsiR29vZ2xlICsxIl09Wy03Miwi aHR0cHM6Ly9wbHVzLmdvb2dsZS5jb20vc2hhcmU/dXJsPXtVUkx9Il07dmFyIGI9 JCgiI3NvYy1jb250YWluZXIiKSxjPSQoJzxkaXYgY2xhc3M9InNvYy1idXR0b25z Ij48L2Rpdj4nKSxkPWVuY29kZVVSSUNvbXBvbmVudChiLmRhdGEoInNoYXJlX3Vy bCIpKSxlPWVuY29kZVVSSUNvbXBvbmVudChiLmRhdGEoInNoYXJlX3RpdGxlIikp OyQuZWFjaChhLGZ1bmN0aW9uKGEsYil7dmFyIGY9ItCe0L/Rg9Cx0LvQuNC60L7Q stCw0YLRjCDRgdGB0YvQu9C60YMg0LIgIithLGc9YlswXSsicHgiLGg9YlsxXS5y ZXBsYWNlKCJ7VVJMfSIsZCkucmVwbGFjZSgie1RJVExFfSIsZSk7JCgiPHNwYW4+ PC9zcGFuPiIpLmF0dHIoInRpdGxlIixmKS5jc3MoImJhY2tncm91bmQtcG9zaXRp b24iLGcpLmNsaWNrKGZ1bmN0aW9uKCl7d2luZG93Lm9wZW4oaCwiX2JsYW5rIiwi d2lkdGg9ODAwLGhlaWdodD01NTAsdG9wPTUwLGxlZnQ9MTAwLGxvY2F0aW9uPXll cyxzY3JvbGxiYXJzPXllcyIpfSkuYXBwZW5kVG8oYyl9KSxjLmFwcGVuZFRvKGIp fX0sQkIubmF2YmFyPXtpbml0OmZ1bmN0aW9uKCl7dGhpcy5uYXZfYnRuX2NsaWNr KCksdGhpcy5jaGFuZ2VfdW5oaWRlX2V2ZW50KCksdGhpcy5zaG93X21lbnUoKSx0 aGlzLnNob3dfcGFuZWwoKX0sbmF2X2J0bl9jbGljazpmdW5jdGlvbigpeyQoIiNu YXYtdXAiKS5jbGljayhmdW5jdGlvbigpe0JCLm5hdmJhci5zY3JvbGxfcGFnZSgw KX0pLCQoIiNuYXYtZG93biIpLmNsaWNrKGZ1bmN0aW9uKCl7dmFyIGE9JChkb2N1 bWVudCkuaGVpZ2h0KCktJCh3aW5kb3cpLmhlaWdodCgpLTE1MDtCQi5uYXZiYXIu c2Nyb2xsX3BhZ2UoYSl9KX0sc2Nyb2xsX3BhZ2U6ZnVuY3Rpb24oYSl7JCgiaHRt bCxib2R5IikuYW5pbWF0ZSh7c2Nyb2xsVG9wOmF9LDIwMCl9LGNoYW5nZV91bmhp ZGVfZXZlbnQ6ZnVuY3Rpb24oKXskKCIubmF2LWV2ZW50IikuY2xpY2soZnVuY3Rp b24oKXt2YXIgYT0kKHRoaXMpLmRhdGEoImV2ZW50Iil8fCJtb3VzZWVudGVyIjsk KCIjbmF2LXBhbmVsIikub2ZmKCIubmF2Iikub24oYSsiLm5hdiIsZnVuY3Rpb24o KXskKHRoaXMpLnJlbW92ZUNsYXNzKCJuYXYtaGlkZGVuLWFycm93Iil9KSxCQi5s b2NhbFN0b3JhZ2Uuc2V0KCJ1bmhpZGVfZXZlbnQiLGEpfSl9LHNob3dfbWVudTpm dW5jdGlvbigpe3ZhciBhPSQoIiNuYXYtb3B0LW1lbnUiKSxiPSExOyQoIiNuYXYt c2V0dGluZ3MiKS5jbGljayhmdW5jdGlvbigpe2I/YS5oaWRlKCk6YS5zaG93KCks Yj0hYn0pLm1vdXNlbGVhdmUoZnVuY3Rpb24oKXtiJiZhLmNsaWNrKCl9KX0sc2hv d19wYW5lbDpmdW5jdGlvbigpe2lmKCEoJChkb2N1bWVudCkuaGVpZ2h0KCk8JCh3 aW5kb3cpLmhlaWdodCgpKzQwMCkpe3ZhciBhPUJCLmxvY2FsU3RvcmFnZS5nZXQo InVuaGlkZV9ldmVudCIpfHwibW91c2VlbnRlciI7JCgiI25hdi1wYW5lbCIpLm9u KGErIi5uYXYiLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygibmF2LWhp ZGRlbi1hcnJvdyIpfSkubW91c2VsZWF2ZShmdW5jdGlvbigpeyQodGhpcykuYWRk Q2xhc3MoIm5hdi1oaWRkZW4tYXJyb3ciKX0pLnNob3coKX19fSxmdW5jdGlvbigp e3ZhciBhPXt9OyQuZWFjaChbMTYwLDE2NCwxNjYsMTY3LDE2OSwxNzEsMTcyLDE3 MywxNzQsMTc2LDE3NywxODEsMTgyLDE4MywxODcsMTExOCwxMTE5LDExNjgsMTE2 OSw4MjExLDgyMTIsODIxNiw4MjE3LDgyMTgsODIyMCw4MjIxLDgyMjIsODIyNCw4 MjI1LDgyMjYsODIzMCw4MjQwLDgyNDksODI1MCw4MzY0LDg0NzAsODQ4Ml0sZnVu Y3Rpb24oYixjKXthW2NdPSEwfSksU3RyaW5nLnByb3RvdHlwZS50bzEyNTE9ZnVu Y3Rpb24oKXtmb3IodmFyIGI9dGhpcysiIixjPSIiLGQ9Yi5sZW5ndGgsZT0wO2U8 ZDtlKyspe3ZhciBmPWIuY2hhckNvZGVBdChlKTtjKz1mPjEwMzcmJmY8MTEwNHx8 ZjwxMjh8fGY+MTEwNCYmZjwxMTE3fHxmPjEwMjQmJmY8MTAzN3x8bnVsbCE9YVtm XT9iW2VdOiImIyIrZisiOyJ9cmV0dXJuIGN9LFN0cmluZy5wcm90b3R5cGUuaGln aGxpZ2h0X25vbl8xMjUxPWZ1bmN0aW9uKCl7Zm9yKHZhciBiPXRoaXMrIiIsYz0i IixkPWIubGVuZ3RoLGU9MDtlPGQ7ZSsrKXt2YXIgZj1iLmNoYXJDb2RlQXQoZSk7 Yys9Zj4xMDM3JiZmPDExMDR8fGY8MTI4fHxmPjExMDQmJmY8MTExN3x8Zj4xMDI0 JiZmPDEwMzd8fG51bGwhPWFbZl0/YltlXTonPGVtIGNsYXNzPSJobC1ub24tMTI1 MSI+JytiW2VdKyI8L2VtPiJ9cmV0dXJuIGN9LFN0cmluZy5wcm90b3R5cGUuY291 bnRfYXNfMTI1MT1mdW5jdGlvbigpe2Zvcih2YXIgYj10aGlzLnRvU3RyaW5nKCks Yz1iLmxlbmd0aCxkPWMsZT0wO2U8YztlKyspe3ZhciBmPWIuY2hhckNvZGVBdChl KTtmPjEwMzcmJmY8MTEwNHx8ZjwxMjh8fGY+MTEwNCYmZjwxMTE3fHxmPjEwMjQm JmY8MTAzN3x8bnVsbCE9YVtmXXx8KGQrPTIrZi50b1N0cmluZygpLmxlbmd0aCl9 cmV0dXJuIGR9fSgpLEJCLmhpZ2hsaWdodF9jeXJpbGxpYz1mdW5jdGlvbihhKXt2 YXIgYj1hLmh0bWwoKS5yZXBsYWNlKC9b0ZHQsC3Rj10rL2dpLCc8c3BhbiBjbGFz cz0iY3lyLXN5bWJvbCI+JCY8L3NwYW4+Jyk7YS5odG1sKGIpLmFkZENsYXNzKCJo bC1jeXJpbGxpYyIpfSxCQi5GU049e2J1aWxkX25hdjpmdW5jdGlvbigpe3ZhciBh PSQoIiNmcyIpLmZpbmQoInNlbGVjdCIpLGI9IiI7YS5jaGlsZHJlbigib3B0Z3Jv dXAiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGE9JCh0aGlzKS5hdHRyKCJsYWJlbCIp O2IrPSc8bGk+PHNwYW4gY2xhc3M9ImIiPicrYSsiPC9zcGFuPjx1bD4iLCQodGhp cykuY2hpbGRyZW4oIm9wdGlvbi5yb290X2ZvcnVtIikuZWFjaChmdW5jdGlvbigp e3ZhciBhPSQodGhpcykuaHRtbCgpLGM9JCh0aGlzKVswXS5pbmRleDtiKz0nPGxp PjxzcGFuIGNsYXNzPSJmIiBkYXRhLW9wdF9pZHg9IicrYysnIj4nK2ErIjwvc3Bh bj48L2xpPiJ9KSxiKz0iPC91bD48L2xpPiJ9KSwkKCIjZnNuLWxvYWQtc3R1YiIp LnJlbW92ZSgpLCQoIiNmcy1uYXYtdWwiKS5odG1sKGIpLnRyZWV2aWV3KHtjb2xs YXBzZWQ6ITB9KS5vbigiY2xpY2siLCJzcGFuLmYiLGZ1bmN0aW9uKCl7YVswXS5z ZWxlY3RlZEluZGV4PSQodGhpcykuZGF0YSgib3B0X2lkeCIpLCQoIiNmcy1uYXYt bGlzdCIpLmZhZGVPdXQoKX0pfX0sQkIuZm9jdXNfcGdfaW5wdXQ9ZnVuY3Rpb24o KXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgiI3BnLXBhZ2UiKS5pcygiOnZpc2li bGUiKSYmJCgiI3BnLXBhZ2UiKS5mb2N1cygpfSwxMDApfSxCQi5nb190b19wYWdl PWZ1bmN0aW9uKGEpe3ZhciBiPShwYXJzZUludChhKS0xKSpCQi5QR19QRVJfUEFH RSxjPUJCLlBHX0JBU0VfVVJMLmluZGV4T2YoIj8iKT09LTE/Ij8iOiImIjt3aW5k b3cubG9jYXRpb249QkIuUEdfQkFTRV9VUkwrYysic3RhcnQ9IitifSxCQi5hbGxv d2VkX3RyYW5zbGF0b3JfaG9zdHM9L14odHJhbnNsYXRlXC5nb29nbGV1c2VyY29u dGVudFwuY29tKSQvLEJCLnNldF9vcHRfanM9ZnVuY3Rpb24oYSxiLGMpe0JCLm9w dF9qc1thXT1iLEJCLkNvb2tpZXMuc2V0KCJvcHRfanMiLEJCLm9wdF9qcyksYyYm d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpfSxCQi5obF9xdWlja19zZWFyY2hfZXJy PWZ1bmN0aW9uKCl7JCgiI3NlYXJjaC10ZXh0IikuYWRkQ2xhc3MoImhsLWVyci1p bnB1dCIpLmZvY3VzKCl9LEJCLkVUPWZ1bmN0aW9uKCl7cmV0dXJuIkVUImluIHdp bmRvdyYmJC5pc1BsYWluT2JqZWN0KEVUKT9FVDpudWxsfSxCQi5pc19zc2xfZG9t YWluPWZ1bmN0aW9uKCl7cmV0dXJuISFCQi5jdXJfZG9tYWluLm1hdGNoKC9edG9y cmVudHNcLmxvY3xydXRyYWNrZXJcLihvcmd8Y3J8bmV0KSQvKX0sQkIudG9nZ2xl X3RvcF9sb2dpbj1mdW5jdGlvbigpeyQoIiNxdWljay1zZWFyY2gtZ3Vlc3QsICNs b2dpbi1mb3JtLXF1aWNrIikudG9nZ2xlKCksJCgiI3RvcC1sb2dpbi11bmFtZSIp LmZvY3VzKCl9LEJCLklTX0dVRVNUJiYkKGZ1bmN0aW9uKCl7JCgiI2xvZ2luLWZv cm0tcXVpY2siKS5oaWRlKCkuYXBwZW5kVG8oIiN0b3AtbG9naW4tYm94IiksJCgi I3NlYXJjaC10ZXh0LWd1ZXN0Iikua2V5cHJlc3MoZnVuY3Rpb24oYSl7MTM9PWEu d2hpY2gmJiQoIiNjc2Utc2VhcmNoLWJ0bi10b3AiKS5jbGljaygpfSksJCgiI2xv Z2luLWZvcm0tcXVpY2ssICNsb2dpbi1mb3JtLWZ1bGwiKS5zdWJtaXQoZnVuY3Rp b24oKXt2YXIgYT0kKHRoaXMpLmZpbmQoImlucHV0LmxvZ2luLXNzbCIpLmlzKCI6 Y2hlY2tlZCIpO3RoaXMuYWN0aW9uPShhPyJodHRwczoiOiJodHRwOiIpKyIvLyIr QkIuY3VyX2RvbWFpbisiL2ZvcnVtL2xvZ2luLnBocCIsYXx8QkIuQ29va2llc1si ZGVsZXRlIl0oImJiX3NzbCIpfSksQkIuaXNfc3NsX2RvbWFpbigpPyQoImlucHV0 LmxvZ2luLXNzbCIpLnByb3Aoe2NoZWNrZWQ6ISFCQi5Db29raWVzLmdldCgiYmJf c3NsIil9KTokKCJpbnB1dC5sb2dpbi1zc2wiKS5wcm9wKHtjaGVja2VkOiExfSku Y2hhbmdlKGZ1bmN0aW9uKCl7dGhpcy5jaGVja2VkPSExLGFsZXJ0KCLQndC1INC/ 0L7QtNC00LXRgNC20LjQstCw0LXRgtGB0Y8g0L3QsCDRjdGC0L7QvCDQtNC+0LzQ tdC90LUiKX0pfSksJChmdW5jdGlvbigpe3dpbmRvdy5pbmplY3RDU1M9ZnVuY3Rp b24oYSl7dmFyIGI9YS5jcmVhdGVFbGVtZW50KCJkaXYiKSxjPWEuY3JlYXRlRWxl bWVudCgiZGl2Iik7cmV0dXJuIGZ1bmN0aW9uKGQpe2IuaWR8fChiLmlkPSJpbmpl Y3RlZC1jc3MiLGIuc3R5bGUuZGlzcGxheT0ibm9uZSIsYS5ib2R5LmFwcGVuZENo aWxkKGIpKSxjLmlubmVySFRNTD0iPGJyPjxzdHlsZT4iK2QrIjwvc3R5bGU+Iixi LmFwcGVuZENoaWxkKGMuY2hpbGRyZW5bMV0pfX0oZG9jdW1lbnQpfSk7DQo7Ly8g anMvYmJjb2RlLmpzCmZ1bmN0aW9uIGluaXRQb3N0KGEpe3ZhciBiPSQoYSk7JCgi c3Bhbi5wb3N0LWhyIixiKS5odG1sKCc8aHIgY2xhc3M9InRMZWZ0Ij4nKSxpbml0 UXVvdGVzKGIpLGluaXRQb3N0SW1hZ2VzKGIpLGluaXRTcG9pbGVycyhiKSxpbml0 TGlua3MoYil9ZnVuY3Rpb24gaW5pdFF1b3RlcyhhKXthLmhhc0NsYXNzKCJzaWdu YXR1cmUiKXx8JCgiZGl2LnEiLGEpLmVhY2goZnVuY3Rpb24oKXt2YXIgYT0kKHRo aXMpLGI7aWYoYj1hLmNoaWxkcmVuKCJ1LnEtcG9zdDpmaXJzdCIpLnRleHQoKSl7 dmFyIGM9InZpZXd0b3BpYy5waHA/cD0iK2IrIiMiK2I7YS5zaWJsaW5ncygiZGl2 LnEtaGVhZCIpLmFwcGVuZChzcHJpbnRmKCcgPGEgaHJlZj0iJXMiIHRpdGxlPSLQ n9C10YDQtdC50YLQuCDQuiDRhtC40YLQuNGA0YPQtdC80L7QvNGDINGB0L7QvtCx 0YnQtdC90LjRjiI+PGltZyBzcmM9IiVzL2ljb25fbGF0ZXN0X3JlcGx5LmdpZiIg Y2xhc3M9Imljb24yIiBhbHQ9IiI+PC9hPicsYyxCQi5JTUdfVVJMKSl9fSl9ZnVu Y3Rpb24gaW5pdFBvc3RJbWFnZXMoYSl7aWYoIUJCLm9wdF9qcy5oX3Bvc3RfaSl7 dmFyIGI9QkIub3B0X2pzLnNwX29wP1tdOiQoImRpdi5zcC1ib2R5IHZhci5wb3N0 SW1nIixhKTskKCJ2YXIucG9zdEltZyIsYSkubm90KGIpLmVhY2goZnVuY3Rpb24o KXt2YXIgYT0kKHRoaXMpLGI9YnVpbGRQb3N0SW1nKGEpLGM9YS5oYXNDbGFzcygi cG9zdEltZ0FsaWduZWQiKT9CQi5wb3N0SW1nQWxpZ25lZF9NYXhXaWR0aDpCQi5w b3N0SW1nX01heFdpZHRoO2lmKGIuYmluZCgiY2xpY2siLGZ1bmN0aW9uKCl7cmV0 dXJuIGltZ0ZpdCh0aGlzLGMpfSksQkIub3B0X2pzLmlfYWZ0X2wpeyQoIiNwcmVs b2FkIikuYXBwZW5kKGIpO3ZhciBkPSc8YSBocmVmPSInK2JbMF0uc3JjKyciIHRh cmdldD0iX2JsYW5rIj48aW1nIHNyYz0iJytCQi5JTUdfVVJMKycvbG9hZGluZ18z LmdpZiIgYWx0PSIiPjwvYT4nO2EuaHRtbChkKSxiLm9uZSgibG9hZCIsZnVuY3Rp b24oKXtpbWdGaXQodGhpcyxjKSxhLmVtcHR5KCkuYXBwZW5kKHRoaXMpfSl9ZWxz ZSBiLm9uZSgibG9hZCIsZnVuY3Rpb24oKXtpbWdGaXQodGhpcyxjKX0pLGEuZW1w dHkoKS5hcHBlbmQoYik7dmFyIGU9Yi5kYXRhKCJ3cmFwIik7ZSYmYi53cmFwKCc8 YSBocmVmPSInK2UuaHJlZisnIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IicrZS50 aXRsZSsnIj48L2E+Jyl9KX19ZnVuY3Rpb24gaW5pdFNwb2lsZXJzKGEpe2EuaGFz Q2xhc3MoInNpZ25hdHVyZSIpfHwoYS5vZmYoIi5zcG9pbGVyIiksYS5vbigiY2xp Y2suc3BvaWxlciIsImRpdi5zcC1oZWFkIixmdW5jdGlvbihhKXt2YXIgYj0kKHRo aXMpLGM9Yi5uZXh0KCJkaXYuc3AtYm9keSIpLGQ9Yi5wYXJlbnQoImRpdi5zcC13 cmFwIik7aWYoIWMuaGFzQ2xhc3MoImluaXRlZCIpKXtpbml0UG9zdEltYWdlcyhj KTt2YXIgZT0kKCc8ZGl2IGNsYXNzPSJzcC1mb2xkIGNsaWNrYWJsZSI+W9GB0LLQ tdGA0L3Rg9GC0YxdPC9kaXY+JykuY2xpY2soZnVuY3Rpb24oKXskLnNjcm9sbFRv KGIse2R1cmF0aW9uOjIwMCxheGlzOiJ5IixvZmZzZXQ6LTIwMH0pLGIuY2xpY2so KS5hbmltYXRlKHtvcGFjaXR5Oi4xfSw1MDApLmFuaW1hdGUoe29wYWNpdHk6MX0s NzAwKX0pO2MuYXBwZW5kKGUpLmFkZENsYXNzKCJjbGVhcmZpeCBpbml0ZWQiKSxj LnBhcmVudCgpLmFkZENsYXNzKCJjbGVhcmZpeCIpfWlmKGEuc2hpZnRLZXkpe2Iu Y3NzKCJ1c2VyLXNlbGVjdCIsIm5vbmUiKSxhLnN0b3BQcm9wYWdhdGlvbigpLGEu c2hpZnRLZXk9ITE7dmFyIGY9Yi5oYXNDbGFzcygidW5mb2xkZWQiKTskKCJkaXYu c3AtaGVhZCIsJChjLnBhcmVudHMoInRkIilbMF0pKS5maWx0ZXIoZnVuY3Rpb24o KXtyZXR1cm4gJCh0aGlzKS5oYXNDbGFzcygidW5mb2xkZWQiKT9mOiFmfSkuY2xp Y2soKX1lbHNlIGIudG9nZ2xlQ2xhc3MoInVuZm9sZGVkIiksZC50b2dnbGVDbGFz cygic3Atb3BlbmVkIiksYy5zbGlkZVRvZ2dsZSgiZmFzdCIpfSkpfWZ1bmN0aW9u IGJ1aWxkUG9zdEltZyhhKXt2YXIgYj1udWxsLGM9YS5hdHRyKCJ0aXRsZSIpO3Jl dHVybiBjLm1hdGNoKEJCLmJhbm5lZF9pbWdfaG9zdHNfcmVnKSYmKGI9e2hyZWY6 Ii9nby8yIix0aXRsZToi0J/RgNC+0YfQuNGC0LDQudGC0LUg0L/RgNCw0LLQuNC7 0LAg0YDQsNC30LzQtdGJ0LXQvdC40Y8g0LrQsNGA0YLQuNC90L7QuiEifSxjPUJC LlNNSUxFU19VUkwrIi90cl9vb3BzLmdpZiIpLCQoJzxpbWcgc3JjPSInK2MrJyIg Y2xhc3M9IicrYS5hdHRyKCJjbGFzcyIpKyciIGFsdD0icGljIj4nKS5kYXRhKCJ3 cmFwIixiKX1mdW5jdGlvbiBpbml0TGlua3MoYSl7dmFyIGI9YS5oYXNDbGFzcygi c2lnbmF0dXJlIik7JCgiYS5wb3N0TGluayIsYSkuZWFjaChmdW5jdGlvbigpe2lm KCFCQi5sb2NhbF9saW5rX3JlZy50ZXN0KHRoaXMuaHJlZikpe3ZhciBhPSQodGhp cyksYz1hLmF0dHIoImhyZWYiKSxkO2lmKGIpYnVpbGRfZXh0ZXJuYWxfbGluayhh KTtlbHNlIGlmKGQ9Yy5tYXRjaCgvXmh0dHBzPzpcL1wvKD86d3d3XC4pPyg/Onlv dXR1YmVcLmNvbVwvfHlvdXR1XC5iZSkoPyF1c2VyKSg/Oi4qPykoPzo9fFwvKShb XHdcLV17MTF9KSg/IVx3KS9pKSlidWlsZF92aWRlb19saW5rKGEsIllvdVR1YmUi LGRbMV0sYyk7ZWxzZSBpZihkPWMubWF0Y2goL15odHRwcz86XC9cL3ZpbWVvXC5j b21cLyhcZCspJC9pKSlidWlsZF92aWRlb19saW5rKGEsIlZpbWVvIixkWzFdLGMp O2Vsc2UgaWYoL15odHRwcz86XC9cL3NvdW5kY2xvdWRcLmNvbVwvLy50ZXN0KGMp KXt2YXIgZT1idWlsZF9tX2xpbmsoYSk7YS5jbGljayhmdW5jdGlvbihhKXthLnBy ZXZlbnREZWZhdWx0KCksInVuZGVmaW5lZCI9PXR5cGVvZiBTQz8kLmFqYXgoe3Vy bDoiLy9jb25uZWN0LnNvdW5kY2xvdWQuY29tL3Nkay5qcyIsZGF0YVR5cGU6InNj cmlwdCIsY2FjaGU6ITAsZ2xvYmFsOiExLHN1Y2Nlc3M6ZnVuY3Rpb24oKXtzY19l bWJlZChlLGMpfX0pOnNjX2VtYmVkKGUsYyl9KX1lbHNlIGJ1aWxkX2V4dGVybmFs X2xpbmsoYSl9fSl9ZnVuY3Rpb24gYnVpbGRfZXh0ZXJuYWxfbGluayhhKXthLmF0 dHIoe3RhcmdldDoiX2JsYW5rIn0pfWZ1bmN0aW9uIGJ1aWxkX21fbGluayhhKXt2 YXIgYj0kKCc8YSBjbGFzcz0ibS1pY29uIiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9 ItCe0YLQutGA0YvRgtGMINCyINC90L7QstC+0Lkg0LLQutC70LDQtNC60LUiPjwv YT4nKS5hdHRyKCJocmVmIixhLmF0dHIoImhyZWYiKSk7cmV0dXJuIGEuaGFzKCJ2 YXIucG9zdEltZyIpLmxlbmd0aD9iLmFkZENsYXNzKCJtLWljb24tb3Zlci1pbWci KTpiLmNzcygiZGlzcGxheSIsImlubGluZS1ibG9jayIpLGEud3JhcCgnPHNwYW4g Y2xhc3M9Im0tbGluayI+PC9zcGFuPicpLmJlZm9yZShiKS5wYXJlbnQoKX1mdW5j dGlvbiBidWlsZF92aWRlb19saW5rKGEsYixjLGQpe2J1aWxkX21fbGluayhhKSxh LmNsaWNrKGZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSxhLm1vZGFsKHtt b2RlOiJ2aWRlbyIscHJvdmlkZXI6Yix2aWRlb19pZDpjLHVybDpkfSl9KSwvXmh0 dHAvLnRlc3QoYS5odG1sKCkpJiZhLmh0bWwoYisiOiAiK2MpfWZ1bmN0aW9uIHNj X2VtYmVkKGEsYil7dmFyIGM9JCgnPGRpdiBzdHlsZT0iY2xlYXI6IGJvdGg7IG1h cmdpbjogOHB4IDAgMnB4OyI+PGkgY2xhc3M9ImxvYWRpbmctMSI+PC9pPjwvZGl2 PicpO2EuYWZ0ZXIoYykucmVtb3ZlKCksU0Mub0VtYmVkKGIse2F1dG9fcGxheToh MX0sY1swXSl9ZnVuY3Rpb24gQkJDb2RlKGEpe3RoaXMuY29uc3RydWN0KGEpfWZ1 bmN0aW9uIEFkZFNlbGVjdGVkVGV4dChhLGIpe2RvY3VtZW50LnBvc3QubWVzc2Fn ZS5jYXJldFBvcz9kb2N1bWVudC5wb3N0Lm1lc3NhZ2UuY2FyZXRQb3MudGV4dD1h K2RvY3VtZW50LnBvc3QubWVzc2FnZS5jYXJldFBvcy50ZXh0K2I6ZG9jdW1lbnQu cG9zdC5tZXNzYWdlLnZhbHVlKz1hK2IsZG9jdW1lbnQucG9zdC5tZXNzYWdlLmZv Y3VzKCl9ZnVuY3Rpb24gSW5zZXJ0QkJDb2RlKGEpe0FkZFNlbGVjdGVkVGV4dCgi WyIrYSsiXSIsIlsvIithKyJdIil9ZnVuY3Rpb24gc3RvcmVDYXJldChhKXthLmNy ZWF0ZVRleHRSYW5nZSYmKGEuY2FyZXRQb3M9ZG9jdW1lbnQuc2VsZWN0aW9uLmNy ZWF0ZVJhbmdlKCkuZHVwbGljYXRlKCkpfWZ1bmN0aW9uIHRyYW5zbGl0Mndpbihh KXt2YXIgYj1hLmxlbmd0aCxjPSIiO2ZvcihpPTA7aTxiO2krKylpZigwPT1hLnN1 YnN0cihpKS5pbmRleE9mKCJeIikmJihlbmRfbGVuPWEuc3Vic3RyKGkrMSkuaW5k ZXhPZigiXiIpKzIsZW5kX2xlbj4xKSljKz1hLnN1YnN0cihpLGVuZF9sZW4pLGkr PWVuZF9sZW4tMTtlbHNlIGlmKDA9PWEuc3Vic3RyKGkpLmluZGV4T2YoIjoiKSYm KGlFbmQ9YS5zdWJzdHIoaSsxKS5pbmRleE9mKCI6IikrMixpRW5kPjEmJmEuc3Vi c3RyKGksaUVuZCkubWF0Y2goIl46W2EtekEtWjAtOV0rOiQiKSkpYys9YS5zdWJz dHIoaSxpRW5kKSxpKz1pRW5kLTE7ZWxzZSBpZihyRXhwPW5ldyBSZWdFeHAoIl4o KGh0dHB8aHR0cHN8bmV3c3xmdHB8ZWQyayk6XFwvXFwvW1xcL2EtekEtWjAtOSVf Py46OyYjfCgpKz1ALV0rKSIsImkiKSxuZXdBcnI9YS5zdWJzdHIoaSkubWF0Y2go ckV4cCkpYys9bmV3QXJyWzFdLGkrPW5ld0FyclsxXS5sZW5ndGgtMTtlbHNlIGlm KHJFeHA9bmV3IFJlZ0V4cCgiXihcXFtcXC8/KGJ8aXx1fHN8Zm9udCg9W2EtejAt OV0rKT98c2l6ZSg9WzAtOV0rKT98Y29sb3IoPSM/W2EtejAtOV0rKT8pXFxdKSIs ImkiKSxuZXdBcnI9YS5zdWJzdHIoaSkubWF0Y2gockV4cCkpYys9bmV3QXJyWzFd LGkrPW5ld0FyclsxXS5sZW5ndGgtMTtlbHNle2ZvcihiU2tpcD0hMSxqPTA7ajx0 YWdBcnJheS5sZW5ndGg7ais9MilpZihyRXhwPW5ldyBSZWdFeHAoIl4oXFxbIit0 YWdBcnJheVtqXSt0YWdBcnJheVtqKzFdKyJcXF0pIiwiaSIpLChuZXdBcnI9YS5z dWJzdHIoaSkubWF0Y2gockV4cCkpJiYockV4cD1uZXcgUmVnRXhwKCJcXFtcXC8i K3RhZ0FycmF5W2pdKyJcXF0iLCJpIiksKGlFbmQ9YS5zdWJzdHIoaStuZXdBcnJb MV0ubGVuZ3RoKzIpLnNlYXJjaChyRXhwKSkmJihlbmRfbGVuPWlFbmQrbmV3QXJy WzFdLmxlbmd0aCt0YWdBcnJheVtqXS5sZW5ndGgrNCxjKz1hLnN1YnN0cihpLGVu ZF9sZW4pLGkrPWVuZF9sZW4tMSxiU2tpcD0hMCkpLGJTa2lwKWJyZWFrO2lmKCFi U2tpcCl7aWYoaXMyY2hhcj0hMSxpPGItMSlmb3Ioaj0wO2o8d190YWJsZTIubGVu Z3RoO2orKylpZihhLnN1YnN0cihpLDIpPT10X3RhYmxlMi5zdWJzdHIoMipqLDIp KXtjKz13X3RhYmxlMi5zdWJzdHIoaiwxKSxpKyssaXMyY2hhcj0hMDticmVha31p ZighaXMyY2hhcil7dmFyIGQ9YS5zdWJzdHIoaSwxKSxlPXRfdGFibGUxLmluZGV4 T2YoZCk7Yys9ZTwwP2Q6d190YWJsZTEuc3Vic3RyKGUsMSl9fX1yZXR1cm4gY31m dW5jdGlvbiB0cmFuc2xpdGVyYXRlKGEsYil7YiYmKGIuZGlzYWJsZWQ9ITApLHNl dFRpbWVvdXQoZnVuY3Rpb24oKXtiYmNvZGUuc3Vycm91bmQoIiIsIiIsdHJhbnNs aXQyd2luKXx8KGEudmFsdWU9dHJhbnNsaXQyd2luKGEudmFsdWUpKSxiJiYoYi5k aXNhYmxlZD0hMSl9LDEpfUJCLmxvY2FsX2xpbmtfcmVnPW5ldyBSZWdFeHAoIl5o dHRwcz86Ly8iK2xvY2F0aW9uLmhvc3RuYW1lKyIvIiwiaSIpLEJCLnBvc3RJbWdf TWF4V2lkdGg9c2NyZWVuLndpZHRoLTIyMCxCQi5wb3N0SW1nQWxpZ25lZF9NYXhX aWR0aD1NYXRoLnJvdW5kKHNjcmVlbi53aWR0aC8zKSxCQi5iYW5uZWRfaW1nX2hv c3RzX3JlZz0vdGlueXBpY3xpbWFnZWJhbmFuYXxpbWFnZXZlbnVlfGltYWdlc2hh Y2t8aGlkZWJlaGluZHxpcGljdHVyZXxjZW50cmtpbm98aW50ZXJmb3RvfHlvdXBp Y1wucnV8Zmxhc2hyZWxlYXNlfGltZ3VyL2ksJChmdW5jdGlvbigpeyQoImRpdi5w b3N0X2JvZHksIGRpdi5zaWduYXR1cmUiKS5lYWNoKGZ1bmN0aW9uKCl7aW5pdFBv c3QodGhpcyl9KX0pLEJCQ29kZS5wcm90b3R5cGU9e1ZLX1RBQjo5LFZLX1BBR0Vf VVA6MzMsQlJLX09QOiJbIixCUktfQ0w6Il0iLHRleHRhcmVhOm51bGwsc3RleHQ6 IiIscXVvdGVyOm51bGwscW91dGVkX3BpZDpudWxsLGNvbGxhcHNlQWZ0ZXJJbnNl cnQ6ITEscmVwbGFjZU9uSW5zZXJ0OiExLGhvdEtleUNsaWNrZWQ6ITEsY29uc3Ry dWN0OmZ1bmN0aW9uKGEpe3RoaXMudGV4dGFyZWE9YSx0aGlzLnRhZ3M9bmV3IE9i amVjdCx0aGlzLmFkZFRhZygiX3F1b3RlciIsZnVuY3Rpb24oKXtyZXR1cm4nW3F1 b3RlPSInK2IucXVvdGVyKyciXVtxcG9zdD0nK2IucW91dGVkX3BpZCsiXSJ9LCJb L3F1b3RlXVxuIixudWxsLG51bGwsZnVuY3Rpb24oKXtyZXR1cm4gYi5jb2xsYXBz ZUFmdGVySW5zZXJ0PSEwLGIuX3ByZXBhcmVNdWx0aWxpbmUoYi5xdW90ZXJUZXh0 KX0pO3ZhciBiPXRoaXM7JChhKS5vbigia2V5ZG93biIsZnVuY3Rpb24oYSl7cmV0 dXJuIGIub25LZXlQcmVzcyhhLHdpbmRvdy5IVE1MRWxlbWVudD8iZG93biI6InBy ZXNzIil9KSwkKGEpLm9uKCJrZXlwcmVzcyIsZnVuY3Rpb24oYSl7cmV0dXJuIGIu b25LZXlQcmVzcyhhLCJwcmVzcyIpfSl9LG9uY2xpY2tQb3N0ZXI6ZnVuY3Rpb24o YSxiKXt2YXIgYz10aGlzLmdldFNlbGVjdGlvbigpWzBdO3JldHVybiBjPyh0aGlz LnF1b3Rlcj1hLHRoaXMucW91dGVkX3BpZD1iLHRoaXMucXVvdGVyVGV4dD1jLHRo aXMuaW5zZXJ0VGFnKCJfcXVvdGVyIikpOnRoaXMuaW5zZXJ0QXRDdXJzb3IoIlti XSIrYSsiWy9iXVxuIiksITF9LG9uY2xpY2tRdW90ZVNlbDpmdW5jdGlvbigpe3Zh ciBhPXRoaXMuZ2V0U2VsZWN0aW9uKClbMF07cmV0dXJuIGE/dGhpcy5pbnNlcnRB dEN1cnNvcigiW3F1b3RlXSIrYSsiWy9xdW90ZV1cbiIpOmFsZXJ0KCLQktGLINC9 0LUg0LLRi9Cx0YDQsNC70Lgg0YLQtdC60YHRgiDQtNC70Y8g0YbQuNGC0LjRgNC+ 0LLQsNC90LjRjyIpLCExfSxlbW90aWNvbjpmdW5jdGlvbihhKXtyZXR1cm4hIWEm Jih0aGlzLmluc2VydEF0Q3Vyc29yKCIgIithKyIgIiksITEpfSxyZWZyZXNoU2Vs ZWN0aW9uOmZ1bmN0aW9uKGEpe2E/dGhpcy5zdGV4dD10aGlzLmdldFNlbGVjdGlv bigpWzBdOnRoaXMuc3RleHQ9IiJ9LGdldFNlbGVjdGlvbjpmdW5jdGlvbigpe3Zh ciBhPXdpbmRvdyxiPSIiLGM7aWYoYS5nZXRTZWxlY3Rpb24pYj1hLmdldFNlbGVj dGlvbigpO2Vsc2UgaWYoYS5kb2N1bWVudC5nZXRTZWxlY3Rpb24pYj1hLmRvY3Vt ZW50LmdldFNlbGVjdGlvbigpO2Vsc2V7aWYoIWEuZG9jdW1lbnQuc2VsZWN0aW9u fHwhYS5kb2N1bWVudC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UpcmV0dXJuW251bGws bnVsbF07Yz1hLmRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpLGI9Yy50 ZXh0fXJldHVybiIiPT1iJiYoYj10aGlzLnN0ZXh0KSxiPSIiK2IsYj1iLnJlcGxh Y2UoIi9ecyt8cyskL2ciLCIiKSxbYixjXX0saW5zZXJ0QXRDdXJzb3I6ZnVuY3Rp b24oYSl7dmFyIGI9dGhpcy50ZXh0YXJlYTtpZihiLmZvY3VzKCksZG9jdW1lbnQu c2VsZWN0aW9uJiZkb2N1bWVudC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2Upe3ZhciBj PWRvY3VtZW50LnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpO3RoaXMucmVwbGFjZU9u SW5zZXJ0fHxjLmNvbGxhcHNlKCksYy50ZXh0PWF9ZWxzZSBpZihiLnNldFNlbGVj dGlvblJhbmdlKXt2YXIgZD10aGlzLnJlcGxhY2VPbkluc2VydD9iLnNlbGVjdGlv blN0YXJ0OmIuc2VsZWN0aW9uRW5kLGU9Yi5zZWxlY3Rpb25FbmQsZj1iLnZhbHVl LnN1YnN0cigwLGQpLGc9Yi52YWx1ZS5zdWJzdHIoZSk7Yi52YWx1ZT1mK2ErZyxi LnNldFNlbGVjdGlvblJhbmdlKGQrYS5sZW5ndGgsZCthLmxlbmd0aCl9ZWxzZSBi LnZhbHVlKz1hO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtiLmZvY3VzKCl9LDEwMCl9 LHN1cnJvdW5kOmZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLnRleHRhcmVhO2Qu Zm9jdXMoKSxjfHwoYz1mdW5jdGlvbihhKXtyZXR1cm4gYX0pO3ZhciBlPXRoaXMu Z2V0U2VsZWN0aW9uKCksZj1lWzBdLGc9ZVsxXTtpZihudWxsPT1mKXJldHVybiEx O3ZhciBoPW51bGwhPWYmJiIiIT1mO2lmKGcpe3ZhciBoPW51bGwhPWYmJiIiIT1m LGk9YStjKGYpKyhiP2I6IiIpO2lmKGcudGV4dD1pLGcuY29sbGFwc2UoKSwiIiE9 Zil7Zm9yKHZhciBqPTAsaz0wO2s8aS5sZW5ndGg7aysrKSJcciI9PWkuY2hhckF0 KGspJiZqKys7Zy5tb3ZlU3RhcnQoImNoYXJhY3RlciIsLWIubGVuZ3RoLWYubGVu Z3RoLWEubGVuZ3RoK2opLGcubW92ZUVuZCgiY2hhcmFjdGVyIiwtMCl9ZWxzZSBn Lm1vdmVFbmQoImNoYXJhY3RlciIsLWIubGVuZ3RoKTt0aGlzLmNvbGxhcHNlQWZ0 ZXJJbnNlcnR8fGcuc2VsZWN0KCl9ZWxzZSBpZihkLnNldFNlbGVjdGlvblJhbmdl KXt2YXIgbD1kLnNlbGVjdGlvblN0YXJ0LG09ZC5zZWxlY3Rpb25FbmQsbj1kLnNj cm9sbFRvcCxvPWQudmFsdWUuc3Vic3RyKDAsbCkscD1kLnZhbHVlLnN1YnN0ciht KSxxPWMoZC52YWx1ZS5zdWJzdHIobCxtLWwpKSxyPWErcStiO2QudmFsdWU9byty K3AsIiIhPXE/KGQuc2V0U2VsZWN0aW9uUmFuZ2UobCxsK3IubGVuZ3RoKSxoPSEw KTooZC5zZXRTZWxlY3Rpb25SYW5nZShsK2EubGVuZ3RoLGwrYS5sZW5ndGgpLGg9 ITEpLGQuc2Nyb2xsVG9wPW4sdGhpcy5jb2xsYXBzZUFmdGVySW5zZXJ0JiZkLnNl dFNlbGVjdGlvblJhbmdlKGwrci5sZW5ndGgsbCtyLmxlbmd0aCl9ZWxzZSBkLnZh bHVlKz1hK2YrYjtyZXR1cm4gdGhpcy5jb2xsYXBzZUFmdGVySW5zZXJ0PSExLGh9 LF9jYW5jZWxFdmVudDpmdW5jdGlvbihhKXtyZXR1cm4gYS5wcmV2ZW50RGVmYXVs dCYmYS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uJiZhLnN0b3BQ cm9wYWdhdGlvbigpLGEucmV0dXJuVmFsdWU9ITF9LG9uS2V5UHJlc3M6ZnVuY3Rp b24oYSxiKXt2YXIgYz1TdHJpbmcuZnJvbUNoYXJDb2RlKGEua2V5Q29kZT9hLmtl eUNvZGU6YS5jaGFyQ29kZSk7Zm9yKHZhciBkIGluIHRoaXMudGFncyl7dmFyIGU9 dGhpcy50YWdzW2RdO2lmKCghZS5jdHJsS2V5fHxhW2UuY3RybEtleSsiS2V5Il0p JiZlLmtleSYmYy50b1VwcGVyQ2FzZSgpPT1lLmtleS50b1VwcGVyQ2FzZSgpKXJl dHVybiJrZXlkb3duIj09YS50eXBlJiZ0aGlzLmluc2VydFRhZyhkKSx0aGlzLl9j YW5jZWxFdmVudChhKX1yZXR1cm4hKGEua2V5Q29kZT09dGhpcy5WS19UQUImJiFh LnNoaWZ0S2V5JiZhLmN0cmxLZXkmJiFhLmFsdEtleSl8fCh0aGlzLnRleHRhcmVh LmZvcm0ucG9zdC5mb2N1cygpLHRoaXMuX2NhbmNlbEV2ZW50KGEpKX0sYWRkVGFn OmZ1bmN0aW9uKGEsYixjLGQsZSxmKXtlfHwoZT0iY3RybCIpO3ZhciBnPW5ldyBP YmplY3Q7Zy5pZD1hLGcub3Blbj1iLGcuY2xvc2U9YyxnLmtleT1kLGcuY3RybEtl eT1lLGcubXVsdGlsaW5lPWYsZy5lbHQ9dGhpcy50ZXh0YXJlYS5mb3JtW2FdLHRo aXMudGFnc1thXT1nO3ZhciBoPWcuZWx0O2lmKGgpe3ZhciBpPXRoaXM7aC50eXBl JiYiQlVUVE9OIj09aC50eXBlLnRvVXBwZXJDYXNlKCkmJiQoaCkub24oImNsaWNr IixmdW5jdGlvbigpe3JldHVybiBpLmluc2VydFRhZyhhKSwhMX0pLGgudGFnTmFt ZSYmIlNFTEVDVCI9PWgudGFnTmFtZS50b1VwcGVyQ2FzZSgpJiYkKGgpLm9uKCJj aGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIGkuaW5zZXJ0VGFnKGEpLCExfSl9ZWxz ZSBpZihhJiYwIT1hLmluZGV4T2YoIl8iKSlyZXR1cm4gYWxlcnQoImFkZFRhZygn IithKyInKTogbm8gc3VjaCBlbGVtZW50IGluIHRoZSBmb3JtIil9LGluc2VydFRh ZzpmdW5jdGlvbihhKXt2YXIgYj10aGlzLnRhZ3NbYV07aWYoIWIpcmV0dXJuIGFs ZXJ0KCJVbmtub3duIHRhZyBJRDogIithKTt2YXIgYz1iLm9wZW47ImZ1bmN0aW9u Ij09dHlwZW9mIGIub3BlbiYmKGM9Yi5vcGVuKGIuZWx0KSk7dmFyIGQ9bnVsbCE9 Yi5jbG9zZT9iLmNsb3NlOiIvIitjO2MuY2hhckF0KDApIT10aGlzLkJSS19PUCYm KGM9dGhpcy5CUktfT1ArYyt0aGlzLkJSS19DTCksZCYmZC5jaGFyQXQoMCkhPXRo aXMuQlJLX09QJiYoZD10aGlzLkJSS19PUCtkK3RoaXMuQlJLX0NMKSx0aGlzLnN1 cnJvdW5kKGMsZCxiLm11bHRpbGluZT9iLm11bHRpbGluZT09PSEwP3RoaXMuX3By ZXBhcmVNdWx0aWxpbmU6Yi5tdWx0aWxpbmU6bnVsbCl9LF9wcmVwYXJlTXVsdGls aW5lOmZ1bmN0aW9uKGEpe3JldHVybiBhPWEucmVwbGFjZSgvXHMrJC8sIiIpLGE9 YS5yZXBsYWNlKC9eKFsgXHRdKlxyP1xuKSsvLCIiKSxhLmluZGV4T2YoIlxuIik+ PTAmJihhPSJcbiIrYSsiXG4iKSxhfX0sd2luZG93LkhUTUxFbGVtZW50JiZ3aW5k b3cuSFRNTEVsZW1lbnQucHJvdG90eXBlLl9fZGVmaW5lU2V0dGVyX18mJihIVE1M RWxlbWVudC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXygiaW5uZXJUZXh0Iixm dW5jdGlvbihhKXt0aGlzLmlubmVySFRNTD1hLnJlcGxhY2UoL1wmL2csIiZhbXA7 IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7Iil9KSxI VE1MRWxlbWVudC5wcm90b3R5cGUuX19kZWZpbmVHZXR0ZXJfXygiaW5uZXJUZXh0 IixmdW5jdGlvbigpe3ZhciBhPXRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVSYW5n ZSgpO3JldHVybiBhLnNlbGVjdE5vZGVDb250ZW50cyh0aGlzKSxhLnRvU3RyaW5n KCl9KSk7dmFyIHRfdGFibGUxPSJBQlZHREVaSUpLTE1OT1BSU1RVRlhIQ1lXYWJ2 Z2Rlemlqa2xtbm9wcnN0dWZ4aGN5dycjIix3X3RhYmxlMT0i0JDQkdCS0JPQlNCV 0JfQmNCZ0JrQm9Cc0J3QntCf0KDQodCi0KPQpNCl0KXQptCr0KnQsNCx0LLQs9C0 0LXQt9C40LnQutC70LzQvdC+0L/RgNGB0YLRg9GE0YXRhdGG0YvRidGM0YoiLHRf dGFibGUyPSJFSFNaWU9KT1pIQ0hTSFlVSlVZQUpBZWhzenlvam96aGNoc2h5dWp1 eWFqYUVoU3pZb0pvWmhDaFNoWXVKdVlhSmEiLHdfdGFibGUyPSLQrdCp0IHQgdCW 0KfQqNCu0K7Qr9Cv0Y3RidGR0ZHQttGH0YjRjtGO0Y/Rj9Ct0KnQgdCB0JbQp9Co 0K7QrtCv0K8iLHRhZ0FycmF5PVsiY29kZSIsIiIsImltZyIsIiIsInF1b3RlIiwi KD1bXCInXT9bXiIrU3RyaW5nLmZyb21DaGFyQ29kZSg5Miw5MykrIl0rKT8iLCJ1 cmwiLCIoPVtcIiddP1teIFwiJyIrU3RyaW5nLmZyb21DaGFyQ29kZSg5Miw5Mykr Il0qW1wiJ10/KT8iXTsNCjsvLyBqcy9saWIuaW5pdC5qcwpGb3VuZGF0aW9uLmds b2JhbC5uYW1lc3BhY2U9IiIsJChmdW5jdGlvbigpeyQoZG9jdW1lbnQpLmZvdW5k YXRpb24oKX0pOw0KOy8vIGpzL2JiLmluaXQuanMKJChmdW5jdGlvbigpeyQoIiNh ZHJpdmVyLTI0MHgxMjAiKS5pbmplY3RJRnJhbWUoIi8vYWQuYWRyaXZlci5ydS9j Z2ktYmluL2VybGUuY2dpIix7d2lkdGg6IjI0MHB4IixoZWlnaHQ6IjEyMHB4In0s e3NpZDo4NTcyNSx0YXJnZXQ6ImJsYW5rIixidDo4LHB6OjAsc3o6QkIuQkJfU0NS SVBUKyIyNDAiLHRhaWwyNTY6QkIucmVmZXJyZXJ9KSwkKCJib2R5IikuYXBwZW5k KCQoImRpdi5tZW51LXN1YiIpKSwkKCJhLm1lbnUtcm9vdCIpLmNsaWNrKGZ1bmN0 aW9uKGEpe3JldHVybiBhLnByZXZlbnREZWZhdWx0KCksTWVudS5jbGlja2VkKCQo dGhpcykpLCExfSkuaG92ZXIoZnVuY3Rpb24oKXtyZXR1cm4gTWVudS5ob3ZlcmVk KCQodGhpcykpLCExfSxmdW5jdGlvbigpe3JldHVybiBNZW51LnVuaG92ZXJlZCgk KHRoaXMpKSwhMX0pLCQoImRpdi5tZW51LXN1YiIpLm1vdXNlZG93bihmdW5jdGlv bihhKXthLnN0b3BQcm9wYWdhdGlvbigpfSkuZmluZCgiYSIpLmNsaWNrKGZ1bmN0 aW9uKGEpe01lbnUuaGlkZShhKX0pLCQoImlucHV0LmVycm9yIikub25lKCJmb2N1 cyIsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCJlcnJvciIpfSk7dmFy IGE9JCgiI2FqYXgtbG9hZGluZyIpLGI9JCgiI2FqYXgtZXJyb3IiKTskKGRvY3Vt ZW50KS5hamF4U3RhcnQoZnVuY3Rpb24oKXtiLmhpZGUoKSxhLnNob3coKSxhamF4 LnNldFN0YXR1c0JveFBvc2l0aW9uKGEpfSksJChkb2N1bWVudCkuYWpheFN0b3Ao ZnVuY3Rpb24oKXthLmhpZGUoKX0pLCQoZG9jdW1lbnQpLmFqYXhFcnJvcihmdW5j dGlvbihhLGMpe3ZhciBkPWMuc3RhdHVzLGU9Yy5zdGF0dXNUZXh0OzIwMD09ZCYm KGQ9IiIsZT0iaW52YWxpZCBkYXRhIGZvcm1hdCIpLGIuaHRtbCgiQWpheCBlcnJv ciBpbjogPGk+IithamF4LnVybCsiPC9pPjxicj48Yj4iK2QrIiAiK2UrIjwvYj4i KS5zaG93KCksYWpheC5zZXRTdGF0dXNCb3hQb3NpdGlvbihiKX0pLCQoInZhci5h amF4LXBhcmFtcyIpLmVhY2goZnVuY3Rpb24oKXt2YXIgYT1KU09OLnBhcnNlKCQo dGhpcykuaHRtbCgpKTthLmV2ZW50PWEuZXZlbnR8fCJkYmxjbGljayIsYWpheC5w YXJhbXNbYS5pZF09YSwkKCIjIithLmlkKS5iaW5kKGEuZXZlbnQsYWpheC5jYWxs SW5pdEZuKSwiY2xpY2siIT1hLmV2ZW50JiYiZGJsY2xpY2siIT1hLmV2ZW50fHwk KCIjIithLmlkKS5hZGRDbGFzcygiZWRpdGFibGUtY29udGFpbmVyIil9KSwkKCJh LmRsLXN0dWIiKS5jbGljayhmdW5jdGlvbigpe3JldHVybiBwb3N0MnVybCh0aGlz LmhyZWYpLCQoIiNkZWxfZnV0dXJlX2RsIikuY2xpY2soKSwhMX0pLCQoIiNqdW1w Ym94LXdyYXAiKS5odG1sKFsiPHNlbGVjdD4iLCc8b3B0aW9uIHN0eWxlPSJ3aWR0 aDogMjUwcHg7Ij4mbmJzcDsmcmFxdW87JnJhcXVvOyDQktGL0LHQtdGA0LjRgtC1 INGE0L7RgNGD0Lwg0LTQu9GPINC/0LXRgNC10YXQvtC00LAgJm5ic3A7PC9vcHRp b24+JywiPC9zZWxlY3Q+Il0uam9pbigpKS5vbmUoImNsaWNrIixmdW5jdGlvbigp eyQoIm9wdGlvbiIsdGhpcykuaHRtbCgiJm5ic3A7Jm5ic3A7INCX0LDQs9GA0YPQ ttCw0LXRgtGB0Y8uLi4gJm5ic3A7IiksJCh0aGlzKS5sb2FkKCIvaHRtbC9hamF4 L2p1bXBib3hfdXNlci5odG1sIixmdW5jdGlvbigpe3ZhciBhPSQoInNlbGVjdCIs dGhpcyk7YS5jaGFuZ2UoZnVuY3Rpb24oKXt3aW5kb3cubG9jYXRpb24uaHJlZj0i dmlld2ZvcnVtLnBocD9mPSIrJCh0aGlzKS52YWwoKX0pLHNldFRpbWVvdXQoZnVu Y3Rpb24oKXt0cnl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZl bnRzIik7Yi5pbml0TW91c2VFdmVudCgibW91c2Vkb3duIiwhMCwhMCx3aW5kb3cp LGFbMF0uZGlzcGF0Y2hFdmVudChiKX1jYXRjaChjKXt9fSw1MCl9KX0pLCQoIiNm b290ZXItaW5mby1saW5rcyIpLm9uKCJjbGljayIsImEiLGZ1bmN0aW9uKCl7JCh0 aGlzKS5hdHRyKHt0YXJnZXQ6Il9ibGFuayJ9KX0pLCQoIiNjc2Utc2VhcmNoLWJ0 biwgI2NzZS1zZWFyY2gtYnRuLXRvcCIpLmNsaWNrKGZ1bmN0aW9uKCl7dmFyIGE9 JCh0aGlzKS5kYXRhKCJxdWVyeV9pbnB1dF9pZCIpLGI9JCgiIyIrYSkudmFsKCk7 cmV0dXJuIiI9PWI/KCQoIiMiK2EpLmFkZENsYXNzKCJobC1lcnItaW5wdXQiKS5m b2N1cygpLCExKToicnV0cmFja2VyLm5ldCI9PWxvY2F0aW9uLmhvc3RuYW1lJiZi LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW17QsC3Rj10vZ2ksIiIpPT0i0LLQvtGC INC30LXRgNC60LDQu9C+INC80L7QtSDQv9GA0LjQvNC4INC10LPQviDQutC40L/R gNC40LTQsCIucmVwbGFjZSgvW17QsC3Rj10vZ2ksIiIpPyhCQi5sb2NhbFN0b3Jh Z2Uuc2V0KCJiYmxzX25vX21pcnJvcmluZyIsMSksJCgiIyIrYSkudmFsKCIiKSx3 aW5kb3cubG9jYXRpb24ucmVsb2FkKCkpOigkKCIjY3NlLXRleHQtbWF0Y2giKS52 YWwoYiksJCgiI2NzZS1zdWJtaXQtYnRuIikuY2xpY2soKSwhMSl9KSwkKCIjc2Vh cmNoLXRleHQiKS5vbigibW91c2Vkb3duIGtleXByZXNzIixmdW5jdGlvbigpeyQo dGhpcykuaGFzQ2xhc3MoImhsLWVyci1pbnB1dCIpJiYkKHRoaXMpLnJlbW92ZUNs YXNzKCJobC1lcnItaW5wdXQiKX0pLCQoIiNzZWFyY2gtbWVudSIpLm9uKCJjaGFu Z2UiLGZ1bmN0aW9uKCl7JCgiI3F1aWNrLXNlYXJjaCIpLnN1Ym1pdCgpfSksJCgi I3F1aWNrLXNlYXJjaCIpLnN1Ym1pdChmdW5jdGlvbigpe3ZhciBhPSQodGhpcyks Yj0kKCIjc2VhcmNoLW1lbnUiKS52YWwoKSxjPSQoIiNzZWFyY2gtbWVudSBvcHRp b246c2VsZWN0ZWQiKS5kYXRhKCksZD0kLnRyaW0oJCgiI3NlYXJjaC10ZXh0Iiku dmFsKCkpLGU9W107aWYoIiI9PWQmJiJzZWFyY2gtdHIiIT1iKXJldHVybiBCQi5o bF9xdWlja19zZWFyY2hfZXJyKCksITE7dmFyIGY9ZW5jVVJMKGQpO3N3aXRjaChi KXtjYXNlInNlYXJjaC10ciI6Y2FzZSJzZWFyY2gtYWxsIjp2YXIgZz1jLmFjdGlv bjtudWxsIT1jLmZvcnVtX2lkJiZlLnB1c2goImY9IitjLmZvcnVtX2lkKSwiIiE9 ZiYmZS5wdXNoKCJubT0iK2YpLGUubGVuZ3RoJiYoZys9Ij8iK2Uuam9pbigiJiIp KSxhLmF0dHIoe2FjdGlvbjpnfSk7YnJlYWs7Y2FzZSJjc2UiOnJldHVybiAkKCIj Y3NlLXNlYXJjaC1idG4tdG9wIikuY2xpY2soKSwhMTtjYXNlIndpa2kiOnZhciBo PSJodHRwOi8vcnV0cmFja2VyLndpa2kvIitlbmNVUkwoItCh0LvRg9C20LXQsdC9 0LDRjzpTZWFyY2giKSsiP2Z1bGx0ZXh0PTEmc2VhcmNoPSIrZjtyZXR1cm4gcG9z dDJ1cmwoaCx7dGFyZ2V0OiJfYmxhbmsifSksITE7Y2FzZSJoYXNoIjpyZXR1cm4v XlthLWZBLUYwLTldezQwfSQvLnRlc3QoZCk/d2luZG93LmxvY2F0aW9uLmhyZWY9 InZpZXd0b3BpYy5waHA/aD0iK2Q6QkIuaGxfcXVpY2tfc2VhcmNoX2VycigpLCEx fX0pO3ZhciBjLGQ9ZnVuY3Rpb24oYSl7dmFyIGI9ZnVuY3Rpb24oYSl7cmV0dXJu IGRlY29kZVVSSUNvbXBvbmVudChhLnJlcGxhY2UoL1wrL2csIiAiKSl9LGM9T2Jq ZWN0LmNyZWF0ZShudWxsKSxkPS8oW14mPV0rKT0/KFteJl0qKS9nLGU7d2hpbGUo ZT1kLmV4ZWMoYSkpY1tiKGVbMV0pXT1iKGVbMl0pO3JldHVybiBjfTtCQi5nZXRV cmxQYXJhbT1mdW5jdGlvbihhKXtyZXR1cm4gY3x8KGM9ZCh3aW5kb3cubG9jYXRp b24uc2VhcmNoLnN1YnN0cmluZygxKSkpLGNbYV19LEJCLmluaXRNYWduZXRMaW5r cz1mdW5jdGlvbigpeyQoImEubWFnbmV0LWxpbmsiKS5lYWNoKGZ1bmN0aW9uKCl7 dmFyIGE9dGhpcyxiPSQoYSkuZGF0YSgidG9waWNfaWQiKSxjPSQoIi50b3BpYy10 aXRsZS0iK2IpLnRleHQoKS5zdWJzdHIoMCwxNTApO2EuaHJlZis9IiZkbj0iK2Vu Y29kZVVSSUNvbXBvbmVudChjKX0pfSxCQi5idWlsZF9zaGFyZV9idXR0b25zKCks QkIuZm9ybV90b2tlbiYmJCgiZm9ybS50b2tlbml6ZWQiKS5hcHBlbmQoJzxpbnB1 dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fdG9rZW4iIHZhbHVlPSInK0JCLmZv cm1fdG9rZW4rJyI+JyksaW5qZWN0Q1NTKFsiLnBvc3Rfd3JhcCB7IG1heC13aWR0 aDogIitNYXRoLnJvdW5kKCQod2luZG93KS53aWR0aCgpLSQoIi5wb3N0ZXJfaW5m bzpmaXJzdCIpLm91dGVyV2lkdGgoKS0zMikrInB4IH0iXS5qb2luKCJcbiIpKX0p Ow== ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline; filename=menu_open_1.gif Content-Type: image/gif; name=menu_open_1.gif Content-Location: https://static.t-ru.org/templates/v1/images/menu_open_1.gif Content-Transfer-Encoding: Base64 R0lGODlhCQAJALMAAAAAc/////////////////////////////////////////// /////////////////yH5BAEAAAEALAAAAAAJAAkAAAQQMMhJ6wT44q036GDFiZlV RQA7 ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline; filename=89.gif Content-Type: image/gif; name=89.gif Content-Location: https://static.t-ru.org/flags/89.gif Content-Transfer-Encoding: Base64 R0lGODlhIAAUAPEAAAAAAACA/4DAgP//ACH5BAAAAPcALAAAAAAgABQAAQJuhI+p mzESopy0VhOH3Vzi12WCFn7hKKQghzndk6qdycHDLW8tacU3DNEBAqOaClcUOngW YE7pqqSIQND0MmRKUJIHL0nZNR3BrUYb+aAz5F9xHcCApUQKPD6M1n73dDYEGJbX FzihVhjIoLioUAAAOw== ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline; filename=180.gif Content-Type: image/gif; name=180.gif Content-Location: https://static.t-ru.org/flags/180.gif Content-Transfer-Encoding: Base64 R0lGODlhIAAUAJEAAP/VAABbuwAAAAAAACH5BAAAAAAALAAAAAAgABQAAAJAlI+p m+EPo5zO0IufzVzuDgZfyI0kZp5UqnpCmxnATNf2jc9yzve64AvidsIigGgMIpO9 JTPnfN6i0hrjilUUAAA7 ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline; filename=17.gif Content-Type: image/gif; name=17.gif Content-Location: https://static.t-ru.org/flags/17.gif Content-Transfer-Encoding: Base64 R0lGODlhIAAUAPIAAAAAAACAAP8AAP+AgP///wAAAAAAAAAAACH5BAAAAPcALAAA AAAgABQAAgNjCLrc/k0MIsioIuvNu1BYRlFe2YFTdZFm+wHYGLomaEkyXcPpzeon mCwHDOJUs+LGJokpjZRV8vk6+qhLofNHRY1WgbB4TC4HbJeeeW1mDtlwsRdJiMeZ ooodPvft2RCBgg4JADs= ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline; filename=2-03.gif Content-Type: image/gif; name=2-03.gif Content-Location: https://static2.t-ru.org/logo/newyear/2017/2-03.gif Content-Transfer-Encoding: Base64 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 ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline; filename=reply.gif Content-Type: image/gif; name=reply.gif Content-Location: https://static.t-ru.org/templates/v1/images/reply.gif Content-Transfer-Encoding: Base64 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 V8jCFrrwhS68QQXgE4tAAAA7 ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline; filename=143.gif Content-Type: image/gif; name=143.gif Content-Location: https://static.t-ru.org/flags/143.gif Content-Transfer-Encoding: Base64 R0lGODlhIAAUAJEAAP///9UrHgA5pgAAACH5BAAAAAAALAAAAAAgABQAAAJInI+p m+APo5zO0IufzVzuDgJfyI0kZgjqyrbuq6bwTMdDjb9yzgt7j/sBaYaA8YhMKpfG IvMJbQ6i1KWzig1cs9QtF8oIixUFADs= ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline; filename=icon_minipost.gif Content-Type: image/gif; name=icon_minipost.gif Content-Location: https://static.t-ru.org/templates/v1/images/icon_minipost.gif Content-Transfer-Encoding: Base64 R0lGODlhDAAJALMJAAAAAP///7i4uPf39/39/fDw8Onp6dzc3PPz8////wAAAAAA AAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAMAAkAAAQnMCVAqbwShG3x3EPlAURZ AuOgDgeKAUght2Nh3IJ7AYfg56OKSBIBADs= ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline; filename=attach_big.gif Content-Type: image/gif; name=attach_big.gif Content-Location: https://static.t-ru.org/templates/v1/images/attach_big.gif Content-Transfer-Encoding: Base64 R0lGODlhFgAWAOZ/AHF6x+bp//Pz8+/y9Zmh2KWprZSd3eLm/8vLy4eT6OHh4Zmb wJmi5Pj6/1tktJKZ0pGVmcXFxf7+/9LV8c7S8+bm5oeMkdjc+W50uOnp6b3D9fL0 /4uU2crP9nJ91vT2/8LH7HqF0drd9MTK+3h+g3aAyuTk5IiR1GxyeF1jaYCGi/r8 /+Dk+tvg+tXa+dra2tHV+Ozu/mhyyIKN2PHz/7a87o2Sl4+Y3OTn9urt/3iDzvb5 /7vB6Pb3/4GK0u7x/6mussbL7ZaboK6ytlhir+7u7o2Z8YKN4GZrcYeP1uTm/3R5 f32CiISO0mRqb2t0yba5vX2I1llfZPv+/8PDw9/f3/n8/+vu/+/y/+3w//v7+8rN 6n2EtlZgn5Oc4NDT1ZOVvXiD36Ot76mx6qy087S89pWi+c/Q0Z6jp2Brvujr/2Jt x42QquTn+m54zubo+J6o7O7w+5+jx7O3252m6Ons/Ons/+vt/ZCc9u3w/X+K2u/y /Wp0xFVjs9fb9v///yH5BAEAAH8ALAAAAAAWABYAAAf/gH9fQ1CFhoeIUENnWn9D Izw4A5OUlZMiN2YFAn9AIxp7U6KjpCtWOEl4QhmdGjV5K7FWs7RWDTssR0YQrAVl Y3UNtg3ExbcfLWG7vWR0bT3QH9LTHxs0Fx5GNhV/aGJeLDTiWOTlPz9ZLh4JFtxo cDctWVkxV/b39jkw6+1/QnQcLtixoyaAwYMH9x3pJ4QBBxcGlRyYSJFiBzdHVHCD wOAECBgwOogcSbIGRibcbDDw0cSHDjdPZMiU+aTmkzV6SHCzYKDnDQ4zoggdSlSo zj8WbtwIMedAgBwbrEiY2uDCiTRRQizhpiKJjzRyAjjg02TFFCsfYih54CBECBTc iJiE0AFWjQMAHG5tyMHiAlsdOlCY+ENCRwkHC7JgAHCix4Y7LPxQeECkRAnBhC33 AUMDxAMCG2LgEEEhCGXLSAYvsUyEzZZocd6ImBCEB5culp0MLoAkhZTfwIP/dtI7 BQRuRV4giMCcivPnzpkjQHDmRZE/WgRUMKFAQZXv4L93N1GhiAAtgQAAOw== ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline; filename=icon_magnet_16_1.png Content-Type: image/png; name=icon_magnet_16_1.png Content-Location: https://static.t-ru.org/templates/v1/images/icon_magnet_16_1.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAALGPC/xh BQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAA OpgAABdvkl/FRgAAAYBQTFRFAAAA///v//7t9eLT7vDk3GJRobzD7VhFnb7H7VlG nr7H52BOn7vD03Vp7FpHn73GobW7tZSP/wAAmNHhpKyu1HRoqKOhAP//pqamqaOi pqenadzjivn/r4yD///v///v///v///v///v//7t//7t//7t//7t//7t9eLT9eLT 9eLT7vDk7vDk7vDk3GJR3GJR3GJRobzDobzDobzD7VhF7VhF7VhFnb7Hnb7Hnb7H 7VlG7VlG7VlGnr7Hnr7Hnr7Hnr7H519O7FpH7VlG7VlGnr7Hnr7Hnr7Gn7vD0Xds 6V5M7VlG7VlGnr7Hnr7Hnr3FobS54WZW7VlG5WNTprS7nr7Hn7rBzntw5WJRn7vD orO40Hlt5GNSn7vDobS5kbzBx4J52m5g5WJRnrzEoLe+orG1qZ2arKCewImCwYmC p6uto6+zpaio9eLT7vDk3GJRobzD7VhFnb7H7VlGnr7H7FpH7VlF7lhF42VWqLK3 nb/I7lhE5GVVqLK432pbqLG2we1ldgAAAG10Uk5TAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAACmZ8fUpMfXxlCRXVmp7TFBXVmp7SFBXVmp7SFBXVmp7SFNMU 06MBAqbQEgrA2ist3LwJiMtxcs2FMeLgL2Pv7mEDU8j398dRAxNGbW1FEysR9D8A AAAJcEhZcwAACxMAAAsTAQCanBgAAADUSURBVBjTY2BAB4xy8gqKSoyMTEzKKqpq 6kwMzBqaublazMwsLNp5eTq6LAysevr5+QasrGxshgUFRsZsDOwmpoWFZuzsHBzm RUUWlhwMnFbWxcU2nJxcXLYlJXb2XAQEHIAC3I5OxcXOLpxcrm4lJe4ePAy8nl7F xd4+fPy+fiUl/gECDIJCgaXFxUHBIaElJSVhwiIMDKLhEWXF5RWVVSUlkVECQLeL iUfHFFfX1FaVxMaJS4B8IxmfkJhUV5+ckpomBfGftFB6RmZWdo6MLAMWAAC2iDM/ nT197AAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxMy0xMi0yNFQwOTo0NjoxOSswMDow MDG/XxgAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTMtMTItMjRUMDk6NDY6MTkrMDA6 MDBA4uekAAAARnRFWHRzb2Z0d2FyZQBJbWFnZU1hZ2ljayA2LjcuNy0wIDIwMTIt MDUtMzAgUTE2IGh0dHA6Ly93d3cuaW1hZ2VtYWdpY2sub3JnwI8OHAAAABh0RVh0 VGh1bWI6OkRvY3VtZW50OjpQYWdlcwAxp/+7LwAAABh0RVh0VGh1bWI6OkltYWdl OjpoZWlnaHQAMjU2pp5HyQAAABd0RVh0VGh1bWI6OkltYWdlOjpXaWR0aAAyNTZ6 MhREAAAAGXRFWHRUaHVtYjo6TWltZXR5cGUAaW1hZ2UvcG5nP7JWTgAAABd0RVh0 VGh1bWI6Ok1UaW1lADEzODc4NzgzNznxxvm/AAAAD3RFWHRUaHVtYjo6U2l6ZQAw QkKUoj7sAAAAN3RFWHRUaHVtYjo6VVJJAC92YXIvdG1wLy81MmI5NTdlYjE5ZWU4 OC40MTQzOTA1Ni9tYWduZXQucG5ngs7GpAAAAABJRU5ErkJggg== ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline Content-Type: image/gif Content-Location: https://static.t-ru.org/templates/v1/images/ftree_icons_1.gif Content-Transfer-Encoding: Base64 R0lGODlhYADIAPcAAAAAAAAYMQAYOQAhOQgpQhApQikxQhAxShgxShgxUiExSiFC WilCWj1GVkJSY1pjYwgIawAQcwwYdyAzezlKa0JXc0pSa1JSc1JahFJajFJje1pj e2Nra15vg3Nza3N7iAAplAA5pQBCpQBCrQBaxgBr1gBz3gB73ghjxkJznEJ7lEKE lEqElFJjnFJzlFJ7rVpalFpanFp7lGNjlGNjnGd3mHNzjHt7lFpapVpjtWtzrXd7 nFp7tWtrvXN7tXt7vSGlIXOtKULOY1LWa1KlhFKthFq1hEqUjFKcjGO1jEqMlFKM lFKUlGO1lFqEnFqcnFqErWOEnGuEnGOEqWuMpWuUpXuEpXuMpXOUpXOUrWucrXOc rXOtpXutpWu1nHO9nHOlrXuUrVKMtWuMtWuUtXOUtXuctXOMvXuEvXuMxnulxnut xiGEzjGMznOlznuczlKU1nul1nul3gCE5yGc5zGl50K17wCM9xiU9zmt90rG9wCc /wD//wic/xil/1rG/5wAAP8AAP8ICP8UFLtVUP8/P/9aWv9zc4SEhISEtYSUnIyM jIyUnJSUlMCMhv+QkIO9NpC9WoyUpYWwo6WlnK2lnK2tnP+cnIyktZC2uampqaWl ua2ttbWlpbW1tdOzr4SXyIOuyYiwz4Oz5JS1ypGy25m61qi11ofH7orF/5/G25/D 9KnK2q3O3q3G563G7729vbW1xrW9xr29xrjA2a3O57XO57rO7MbGvcbGxsbGzs7O zs7O1tbOzv+9vf/KypTnpbXvvbXvxrXa2r3W573vxs731tbW1pTO/5TW/5zO/5zW /6XW/7XZ88bb6czm863W/63e/63n/7XW/7Xe/7Xn/73e/73n/73v/8be/8bn/8bv /8b3/87n/87v/873/9bW3tbW597e3tbe597e597e7+fn3ufn59b33tbn9+Ln7973 59bv99bv/97v/973/+fv9+f35+f/7+f//+/v7+/v9+/39+/3/+//7+//9/f39/f3 ///W1v/e3v/39////yH5BAEAAHwALAAAAABgAMgAAAj+APnwOZaroMFcAhMmJHiw oEKFDBs+XNjQ4cSBFRFejHjwIp9c50KK1KTxIUiRIUlePIlS5USWI0sqhJlSZkKa 51yaPCeuZ09N9Gx+5OlTHKWgL4n6BCoUZFGjSHc+ZZr06dGmPInm1Bf1plZx5DRx telUq9iuAp2K4xl2rFSzbmd+bYt2aFaemv7FTStyrTlN+/baXYtXL1qWfgELPklY XN7Ffc/9DXyYHsqcixAtkonLcsvMm2d6Hgma8+iUpUVf1pQ6YefVrdN6Hn3smDiZ sCzP7mkbt+6Q9MTZFgdL4azf54ILv60wd3Lgy4kbR668d3Ou9LJrz1785vbv9Lr+ C8RVD7x23NjNi+dD3nx29O7DX3evbz2s9N/rzzevP+F9+vbht11/Av3HX4D6JKhg gv8guOCCDj6YYIQSUvighRA2p5eEE2rIoT4NeshhiP5tKCGJBZr4IIp8wKLigiy6 yOCMetm34Y0gEtgijjnWKCKOPpY4Y486ypgjkTb+o6SSICqZ5D/+LLmkJxpKqdeS T0ZpJZUlWtlkjEtqKSWXKX65JIjreWLllU4qpOaZW3oo5ZdpzhmnkHa22eWaegr0 Jp8s/slnnYAGWqihha6XCyeaNOLoIo5qwolMizb6aKSTzsSoo41A2oiklG566aeZ 3iRqp5iGaimqpArl0av+sMYq66y01sqHLmbkaoYusOKqK6+v+porsB4Ju2uvuh4b bLLEXmSGKqyooooZsD4b7bTVQistta9au22213LrkbfYepRJFqSQYgopYWCRhbvv tpsJJuiqy6678GIhL73prtvuu1nEi8W89fqLb8D6Dsyvvf/mu2/B9wIscCZhPJPO OBY/44zGzhDjcTP6WoxxOhpz7DExIFd8ccYbO9PxxyGvTHLLL6Mc88glu3xyyiKz bDLMYZwstC22tGI0K620K/TJRBvdCtJKL01M00cnjYXUUxddddRLU/201Vh7jXQW YRTt9despM0K2WZrXbXaa5fdytlIw8323G6jrfb+3XQ/vbfcfavtirtOF06L2tq+ W0vhRh+eduJYLM6449FGqzjjrVAOueSGI2555JhrHi0WkcP9uLSqnCIt4aZfK63q qrBuOuqpr56F33DTDrvsuaO+++2t6746FsKbooopyCMfO/GvS2t88sqT7rvzx0O/ /PTHV5/89c1nD73x0nf/vPWkf4+8ut9XUYX565qvPvvoQ/+++fEnP//39SN/P/T5 m1IFFaUQBSkEKIoCGtCA/wvgAAd4wAMmkIAMbGABH7hACSIQgBC04AQxWEENqk8U oTDgGgoYQgOO4n8gTGEJS1jAE1JBhSmMYQtRGMIakvCALoThCnFIQxjKUBT+LlyD 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 AAA7 ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline; filename=icon_smile.gif Content-Type: image/gif; name=icon_smile.gif Content-Location: https://static.t-ru.org/smiles/icon_smile.gif Content-Transfer-Encoding: Base64 R0lGODlhGQAYAOZ/AIxpCZYFBc6aCs6dC2cIA6OZfWZRHW5TCfHPGqmCDN6xEOS6 FJKFZPbXHWpNCNqtEIsGBLyLCdHPxdWhC6GWeuK3EuvGF3hnPN6vENmnDZtxB//l IvQCAmlSUksBAf7kIb6+vv7lIswAAPDw8HR7cfnbH/jbHu/MGfzhIPrdH4yMjJmZ mdkCAlUQEMUBAa6UlJdlY591dYOBgMS0tOzk5IdERI5JSbEBAXsgIP3iIdfX17We noVTU+nCFr0BAeTl411EDt3d2KFFNQAAAOW8FJBSUu/y9HI5OXtOSKmpqbccHMzM zM+7u10GAtYREWsUFODg4NvMzHdmOtTSyZ94CoAWFocfH2EhIWcpKea9Fe7x8oxw XenHGefEGOTZ2ZpvB7GxsVtPRHUVFb6QC7CTEtfWz3VlZY0uLtjX0J+VeNOwFcCS C5R/f2tCMdLQx2YzM/LRG/PUHdi3F45ERHNhM62PEkpUJFZAM3JfMXpQP7aPDkM0 EP/mIv////8AAP///yH5BAEAAH8ALAAAAAAZABgAAAf/gH+Cg4M6L0U1NooxL0uE j48wTwEuIpYuNwFWNTOQhDNPEBx+pKWkHC5VMZ5/O1Yipz43pqUcBDuQO00sHCwu BAGwtKQsOI8zYhwcVVcBw8MQdoRFPixNbThOSnNIHd7eNUJKTjd7hTg+BEJ3HWYr IFAjffMjOiArbB1hIIIvZ29AYMiAMq+gQYMjVqj4A8ODwzxbQPQZsSTJChIYMcpI AoJGHzAqYGCJ0sfLESQqGJApkWMDn5d8NuQogYAIFRkqPDApSMODmwNxULjcA3PP BhQNLDw4AMKDx4ItKNQx8eElUat8Ppg4UYEKhSsw5PV50eKCnBQhsGINkQLBgjUX rZi0wMLjSIs/BrighcmXD1u3Awz8iRKDBw9BBrpQ7QtTK1cBgiFdUNNgiMu+Rysr iCDFE4UECEoY5StTNJEMGtJ4knAgCxwTez6ECPEBhegeGAQ4kOBJC4MEPRA02EO8 eA8FEzQw0MIqiAE9RCycQIDghAUiGCYkMBCElSA0dAA8qECESAUFGQQAwFPG+6Af BRxQGTNhQoQvDgr8cE/IyJQCUgABhBQFTGEEIYEAADs= ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline; filename=182.gif Content-Type: image/gif; name=182.gif Content-Location: https://static.t-ru.org/flags/182.gif Content-Transfer-Encoding: Base64 R0lGODlhIAAUAPEAAAAAAP8AAP+EQv//ACwAAAAAIAAUAAECTYSPqZvhD6OczshB s7RPDC9oIvd8mKiRQeiw6KQ62PfCQDTQZw3FsseLqICgYO/WMpmMDw4QInAFfcwN spqhYpvXrdVL0XrFW4b5rCgAADs= ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline; filename=icon_minipost_new.gif Content-Type: image/gif; name=icon_minipost_new.gif Content-Location: https://static.t-ru.org/templates/v1/images/icon_minipost_new.gif Content-Transfer-Encoding: Base64 R0lGODlhDAAJALMJAAAAAP7Mmtupd/vJl//Nm/fFk/TCkO27ifnHlf///wAAAAAA AAAAAAAAAAAAAAAAACH5BAEAAAkALAAAAAAMAAkAAAQnMCVAqbwSkG3x3EPlAUFZ AuOgDgeKAUght2Nh3IJ7AYfg56OKSBIBADs= ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline; filename=ddos-guard-5.png Content-Type: image/png; name=ddos-guard-5.png Content-Location: https://static.t-ru.org/images/ddos-guard-5.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAAFgAAAAfCAIAAADsqp23AAAACXBIWXMAAAsTAAAL EwEAmpwYAAABNmlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjarY6xSsNQFEDP i6LiUCsEcXB4kygotupgxqQtRRCs1SHJ1qShSmkSXl7VfoSjWwcXd7/AyVFwUPwC /0Bx6uAQIYODCJ7p3MPlcsGo2HWnYZRhEGvVbjrS9Xw5+8QMUwDQCbPUbrUOAOIk jvjB5ysC4HnTrjsN/sZ8mCoNTIDtbpSFICpA/0KnGsQYMIN+qkHcAaY6addAPACl Xu4vQCnI/Q0oKdfzQXwAZs/1fDDmADPIfQUwdXSpAWpJOlJnvVMtq5ZlSbubBJE8 HmU6GmRyPw4TlSaqo6MukP8HwGK+2G46cq1qWXvr/DOu58vc3o8QgFh6LFpBOFTn 3yqMnd/n4sZ4GQ5vYXpStN0ruNmAheuirVahvAX34y/Axk/96FpPYgAAACBjSFJN AAB6JQAAgIMAAPn/AACA6AAAUggAARVYAAA6lwAAF2/XWh+QAAARC0lEQVR42uRY eZCV1ZX/nfutb+9+r3d6ARroZleQ7oZGWQ0uU4nKkBhjHMtodEicpTKTVCpVM1Mz ycRJYoxGJ5uTDNHEIIgaFYOKyNoN0hhiAjSbNMjS6+vut3/fd++ZP75Hgw5R49RU JTOn3h+33v3uPef+7rnn/M6hf9l0urnSBsAMAEQAoBgEEIEBqaARiOApANAEpIJi mIInhvJH05ajhC5Q8FgBhiDJrBgANIJiuAqmBjByEqaAoVFBsgAEFdU5EjrB0Cgv WTECGilwQYIZAR1E5EpWgKWRv6Fi1gUZomhSwWNHQTE0AVPAEMSAI5mBgE66AANZ hyVDIwQM8vW+S7r78vr4hL1ocknOg61DF5R2WBMIGZR22GOEDHgKnq+JQARXQhew dU4P9fUMq7mlmUC8moWuESyNXMUEhE0qSEiFsAlmOAqGgCHIYwZDF6QL5CWDYeuk GHnJhiBdQCp4iiXD1IgZripiKgiSUZBc8GAIaIKYOesBQMQkS4NkZF3OeWCwRqQY OY8NAVunyqAwNTBwOqUUozJElvZuMNbvT+oMBA0i4oJEQEciQDkPilFiERFcBUMg ZJCr2JGImgQg67iZob79w2bXQHDCQPIq72Rtba1u2RoBKOoI6BfU2OcHOi5YYJ+3 RhCCenGsC+gXXZn5bosJgFf0UGJG2mVHFo2MWWTrGM4j47IgKMaplBrIcWWIZiT0 uE21ETHq8ECOywJkaUi7bAjKuOxIznmsB3QKGhQyLqgMGZdwHkNQUAeAfC431D+w eyR4uBDSkD80bKYKamH6SGNDbay0FP+bohiC4Hu77+oRkxhghiB4CrpAzCLFyLqc crg6pI846u2U6ur1dIGwQWVB8hROpbzKoAgZyHts6YjbQjH0C5f4vnYolRpJ9gxm 9mViZ12LwIpZEB9LW/05ahk+PrMuWlPXYJrmBz8bczEqORKGBgLyHgOwNCpITrsc MshTGHU4ZBAz8pKZYWoAkHYR0GFrlMwzAyUWZVzOS/ZBsTQaLihTQ3NcO5fhcxmV LPDhpCy1KW6L4yOyJizqI2LU4TNpRYD+ASHIZdODydGjGbO7UJbxhAZ2GIqhlNKJ Bh19Y1/50dTwnNN7J9ZXV9bUmKblXxqAgmSNSCMUJLsKzz75eH9/vyuVIJDQIvGK lta2qroJjoKU8uUNjw8nk65UhgBIS1TWtM6fX11T5yl2FSIGDQ30/XLj8ycOH8zn srFE+dy2he2LlqcczrjsKuzv2t29Z+vbp07qhtHc3Ny+/Hqrqq4hKkpsyrgc1DHi cG9W1UZEyuFNJ1w/AiTzTOt+PfTnsy/t0lJK13EK+dxItnA6J3oKwUHP9JTyFBzF DiM9mudURjJcyY7inCSL8w3G4Kxotq6iJFxaaURKDcsmIgA5j6MmORL3ffne5EDv xYo0Xf/k7XcvX7ok73hf/sLnkoODF8/atn336nvnXNGqEY6+deKBb3xtZDhp2YFw NDrY1wtg5pyWO/7yrzwy93duffzRRwA0Tm7OZNLnzrxt2YF7vvCV+olTggaZGghg 4GhSmRoStjgxKjMuV4XE5kPDumKkHJaMkEFScdaDqcEQGBoYyLteRmpDnjngRkc8 zVUAS6UgFTsSkjE+ph0ZYVcyA8xsQCVd7Wi6bO+oW9eXrtcOVBiFiqjZsujquC1c Bak4GKRQwEoCn7v3b6Y0NWWz2Z3btz3/3LNPPvZoy2Uz44mEbVkAvvD3X0pUN2Sz me1bXt66+aVHf/j9L49vZiv805/8aGQ42bZ4xcpVH1dG6ETPiSd/+O039+3ZtPGF 6z9202ubNwG47c7Vc9sXhw169HsPdezc3r2vo2Vm89gbBNAU10YKKuVweVBYBbY0 Cpsksi4XJKccPptWg3l2JGdcPp1WridPeLFjXuk5L5hTOsDMLBmSkfU4oOPWZmv1 FbFb5yVMnbKOZGbFTGBLqBzrB/OlmzITN4xM7B/JlAWEIFgagheF5EQiEU+U19c3 3PypTzdPm+EUCh2vd/XlivlSBhN2rCxQ3vDRW+6sa5iYSad+07XHHek7fqQ7VlJ6 482fLuiRsKVNbpx4/cdWAdi/e1vYoEjAAvDbN/b0HvudcnJ337P6oYe//2cf/dgY Pzof+JEIiFKbdELYJE9xzmM9ZFDUFHG7GHgls59mz+ZIFVgxMyvFUAzJkAo5j6fG 9SX15m/6PU95V9SHqqLGjzsHfncuZ+kkmYlIABqxAgQQ8iMbAMBV8M8JYCTnjTqc ctjUUDdp6qEDvz177iwzJAMAS5nxuMQSKYdrJ04+1XP8zOmT8XgcwLi6huqY7SfI EqLpTY0ABgcHvEL2ppWrHjzZs69r776uveFIpLl56uIlyy6fM/e/v3oCYhZFTUoW 2FMAQxDB1Io8TxcYIxu6AJTnKUiGZPYUPGaPsXCcMS2hr+3O/3bQiwcEgNoS84vL qpY3RR3JUkEAVPxRAI6ha2mXh/J8MqVSDp/NKE8xgLTLGZcDOuVcCCF8mBgQ52lI qSV0gdqICFs6gLCphQ0AMDTSCIRiJPbvmpVynMK06TPuf+C7t91+x5y58wjY+/qe +79530ubXmTmSwZBIsQsChkkxO/PGpqmCel4HJCq+CKkgiA+m1G9WfWRBrM8IMbI j22Ij18W3348NerwmBMyKMC5QCjcl1VxWwDIuFxiFaejtu5ICOISm04dPwJgUsO4 sEGaAICwbZTaxS97jh8FMGHCxJqacQBOnuxxXdcwimznrePHAVRUVgK08YXnSkvj K665bsU112UymZc3vbh+3drOjl1Lli4f+/7dxySEDCqxRBEIn40AKEgAsDSw0DU5 KilWROF8gGgq1QyN9vZ6x0blqkl2NF70fEeyx8zM4gI1pBLkyhKVAZ2GCxw2iMFp hzUiANmRoQneUDbtbNm968Bv9tm2PW/O3PB5a5ODA9FIuFAobH1ty+HD3bFYyZy5 VwQCgUmTpxw9cvjnj//0xpWrwuHwyZM9G9Y/CWDhlYtsy/rZY2v8LHP5nLmhUGhC YyMz5/M53+PeW/SRAo8U2FMYcVTUJAZSDpuCdGGb7jmlSU/BU+wpKFaS6Y0+N2SK aQn9hkbrYj7KgCuZxAV6RlAVRj5RUVkeED4v9Cmz6xQA/OCR71wwQtdvv+Ou0nhc SukUHAD3f/O+i9PnZ+66OxgMAvjMnZ/9t69/7aVNL27b9losFus9dw7A3Cvmrbjm Osuyblq5asNT6771ja83TpokhDhy+DCAqxYt0TTt/YGwNGRcDhlUERQFiYLHFQFB hMG8GRRKyLwHWypWDE+BwfOqzIBOPSm59XRhaa01q0w/zxGZoQjsA6FAQTiT43pt ean2zvtoaW0bGBhQSgEshFZRUdHaNn/8hIljs8lkcmy2qrp6wYKF42pr/dn6hvH/ +M9f/dXGFw4ePJDLZqdOm97efuXipct8qrJy1Seqqms6O3aeOnXSB2jJ0uWXDJaX iBdrXh+8dlqJx8h7iJgQREN5VWoJAH2njr85avUZZZ4nHcWugqdQGRKCEDCoxKK2 KtO/bQC9KffzG97KuUoQAXBZ1Bupe2bIy+fOwx+9rN+f1A0NftHlKniKAzrFbc1T IIIoKz3Wf0pqCemnTwXFPKfCiFnkKmQ9vri252IXw+9jgEETg/nq6gb8iYhuiGLp 6bcMLuROIBqLldJh4eaksBWzZBga7Tjt5BU7EhmPb5saSNhFj7A0KgnovSlXEBgI kZyV4ER5+ZimN9/c/+orr/T0vKVr+pSmpuUfuWb8+Al+Fnj26adisZJbbr1N13UA yaGhxx9bEwoFP/0Xd/jRXkr5s8fWjIwMX3bZnCsXLfY3HBwY+MUTjyulPE8CDFA4 HG5pbZt92eUA9nW9vnPHdmZmZoAi0cjMmbPntbT+XiDeAyRN0yoTJYFz/cPBBmKV l2pGmXnDpLH2AgRBMfvlayygL5wQeWLfYMikrKQJ4XxTXblhFCvR9U/+4ukN6wEk yspy2dyWVzd3dOz64pe+0tTcPDQ42NmxKxqN3XzLrf7HmWyms2OnHQjc8qnbfCCO HO7e9KuNAI4dO9q2oN3/M5NJ79q5A0AwGCQiz/MKhcJrWzb/9d/+XUtr28mens6O XRcfZ/PLLy1oX3jP6nsvGTvfp/qsrq1LvLX7pFkjWRPEB4a8U79Ou0xSwQVGR7Pe cAaC/PeQzHm2LgoKjuL5FW5VTaO/yeHuQ09vWK9p2j2rP9/SOt9z3fXr1r648fk1 //nov973Ld8LbNu+iOcQANuyx4jx9m1bAZim2d/X133o4IyZswAQCQCJRNlXv/4N y7KklM8+s+H5Xz6z5dVXWlrbdMMA0L7wyo/ffIv05LFjRx5b85NdO3c0T52+bPnV fzAQoVCoPh48PnrmdHACs0oV+FyWFXNG8oiCN+powzkmYoZiMBET5TyaVuK2NESD odDFx2htW7Cg/Uo/Wd562+0TGxuF0AAw+L1tSKfTe/Z0VlVVL2hfuOGpdTu2b/WB KHqlENFo1B9PmjTZ/wfne7DBYKisrBxAZVVVNpv9yX/8aNfO7R8GCACTmpoPbt5x 1qp2oSuoNCjpcUYqCNJJMAsmYoAJDEBBJ76uXlXX1IztcObMaQBTmpr81767s8Nx CoFAkAiFQkHQ+7CdN/Z1ZTOZpcuuXnHt9c8/92xX195UKhWJRHzfyWQzz2xYr+u6 47odO3dEo7Frrr3+oqaWGhtPmdLkVyV/cIzwJRYrmV5X/vaZQ/tjs9MFmZIs2fde AhMziC9UMlmJJePUgsZ4IBjyOzpKKd/5ix1Hz3tszY9HR0f9JQ8+/D1/lojo/EM4 P2B/sG3rFgDTp88wTXPO3Cs6O3bt69q7aPES/8tsJrN+3VqfyACYOm1aU/PUSx7k vfml+CCpZdqsyxqdE/nhM31KZ0DQWFn1jjafIzEuhFumWfGyijHdQoj6hvEAjh7p BmBZ1j/801e/+e0HfZchFM/vuM6Yof4/JIRhGL2957oPHQTw4Hfu/9w9d76+ZzeA Hdu3+iWTUqo0Hn/goUf+/QePfvvBh2fPvvzggQOvvLzponB+4YDFqqS88sMDYVlW +/z5Vw7tisq0R5emq56CIXDXLL2xtlLT9Yvvoa1tAYDOjl0du3Z6nldVXX382NFz Z88SkSe98ooKXdeHk8ndnR1SSsdxdnd2AKisrBJCbH75JSnllKbmtrYF81rbrlq0 OBQKdR862N/f54dDTWjxeCIajVVWVi286ioAPSdOjGnP5bKDgwP9/X37ul5fu/bn fvj8kE/Dl5raumvnzeA3O18sWZiBaULinb6gC6y+3Fg4pcwKBN+1tnHSpBtuXPnM 0089/NADZWXlUspkcigYCmUzGddxKiurbly5at3aJx757nfWrX3Cdd1kcoiIbrhp 5ejo6MYXngNwx2c+W1dfP7bhllc3v/bq5sVLlgHI53Oe5/kZMRKNAhgaGvTfIIAd 27ft2L5tbGH7wisXXrXofwQEgKkzZwtNix3petGYeYrDOjMxlIIjuTpEd822Fk+J 26HIJdeu+sQnm5qnbnn1lZ6eE4FgYMW11zU3T9v0qxcCwSCAG25cWVoa37ljW19f rx2w501uXX71ihkzZx09cnheS2siUVZbVze21dJlV+dyOSGEpmtt89sjkcjYmxo3 rnb+gvaSklIADeMntM1fcIFQRcIzZs5uaW37vbXGezRvLym9Z84cPt6z0yl7Q8ZH R5ySzOjcav2G5kB9RalpB/CnKev3J/U/dE1lTU1pWVnTQP9odjijRDwUScTCdiAk PkCp+0dda3yINaZpVtSMq8D/KdG7+3Lr9zP+f0t3X/6/BgC1N2EkGTIyqwAAAABJ RU5ErkJggg== ------------fvIzmB7KOcVRaT5GD7tplQ Content-Disposition: inline; filename=87.gif Content-Type: image/gif; name=87.gif Content-Location: https://openstat.net/i/87.gif?tc=c3c3c3 Content-Transfer-Encoding: Base64 R0lGODlhWAAfAPcAANXV1cTExMXFxTU1NcbGxsvLy/T09MTExPX19bu7u/////7+ /sXFxcjIyNnZ2djY2NnZ2dzc3MrKytzc3MfHx9bW1tra2tvb29fX18nJyf7+/tTU 1P39/Tc3N/b29sDAwPv7+/j4+PPz87q6usPDw+Xl5dbW1vb29vT09NHR0f39/c/P z/z8/NDQ0Pv7+87OzszMzPf39/r6+vf3983NzdPT0/n5+fn5+fr6+jU1NWpqatLS 0oaGhszMzGxsbLy8vEZGRmxsbGtra2BgYH5+fsXFxZSUlJCQkG1tbWJiYjMzM1VV Vb29vaOjo8rKypiYmMfHx+Xl5Xp6erOzs4ODg8jIyOjo6K2trZWVle/v77m5uaCg oOzs7PLy8rKysszMzMHBwaCgoM7Ozp2dnfHx8efn52FhYbe3t1NTU+Xl5WNjY25u bq+vr8LCwubm5ubm5pycnK2trenp6YeHh6Wlpb+/v+fn56Ojo3Z2dpKSkuXl5ZOT k9DQ0F9fX83NzdDQ0NDQ0JCQkMHBwcbGxu/v7/Dw8NLS0ru7u6ampra2tqOjo6io qLCwsObm5snJycvLy5mZmYCAgPHx8bGxse3t7eHh4b29vezs7JKSkqqqqurq6uvr 67y8vKWlpevr61RUVHl5eeHh4UVFReTk5Ly8vLu7u5qamtPT09XV1dTU1MzMzODg 4IKCgqurq4aGhunp6W1tbcDAwKysrO7u7tHR0cLCwr6+vrKysqGhoYiIiM3Nze7u 7qqqqr6+vqKiotLS0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAABYAB8AAAj/AAEIHEiwoMGDCBMqHCii ocOHECNKbIgqgsWLGDNq3Mixo0eLCkKKHEmypEkFIjZMWMmypcuXMGPKnLnypM2b IbukusCzp8+fQIMKHUqU54KjSJMqXcp0QZcaFqJKnUq1qtWrWLNGbcq161FJOyCI HUu2rNmzaNOqFauhrdu3cOPK1UDGkIO7ePPq3cu3r9+/d+cKbuumhxu5ZGg9WMy4 sePHkCNLnrxYheXLmDNj7tHjkGYVhQBhGE26tOnTqFOrXj2ag+vXsGPDjvIjlGwO WVZU2M27t+/fwIMLH777tuwoPaIYj53lxcLn0KMfZEG9uvXqnH9U/8D9OnVCNDaI /x9Pvrz58+g3/FqTC/0aV+ddyJ9Pf76eH5XkfzBB4sOI+i7MAkMNBBL4BRZSYFEE gU3w4OCCLTTo4C0pjOEgD4kQWIQRHBbxRwdUdHJKJhc2UUMHkRiRQoEEguDiiyCk 0UMaMMK4X38j1AjCLgXs4OMOTADRwZBAMLHDkEjGMQiSQ9LAZAdx7IAEknSsMCQs VjJ55JB8/OijjiBk9yJ3H7h4o386UiJBCmymsEQHcKQARwdLpDBkCrjQKUAHSLBZ ii4dDJHCHnzaKSgJKYjRgRpsisHmlHYy2mabOFRqKQ6j/LBKpWeOgEOnl1Z6SRUt lFpLDkCU2sIQOUyRQw6lvv/KAKo++NDCFznY6qqtr/qgSAs05JAEsHmw+moLwqqq rAzMNusss53KEO2zXECxwrWCDPDJtSsEMYAXAwxwbbgBDABEEEGs8MgA6YKb7gh4 hIuJKgMksQIvA1BhSh/i1svtvzcELPANZAbcKcH8+TdwwFwQ8MLDL6AxgC8vaDGA KC+E+0IrA6DRxgBCQOwEyC9MQrIWL0ACcgEDmAEFKwNA8YIQA2RshgR+QPywDTz3 3KkNP9vA3wg9F+2JADQkTcMi4TYdBg1NhxsGGFEPUMUAOtDACNZQNx2IE1JgfUfV NIASbgFKJx3C2mx3GoLbIQzN9tybHADD3XefQYQORLD/cXe4fPtNwBE6FH6EI0ds AUMvicMwR+FP3I2IDpHLUrgOY8Cg9xNO4H333GvDLffao4OuSQAFpK766qkroQTr sMcu++yyz2D77Z3aPvTtu99+uxxtSCD88MQL73rxyCev/PLKx+D88zEM/bz0zlMP fQyvgJHB9tx3v/0VV3gv/vjkl0++B+in78HQ6bOPvvvqe2BFLA3Ub//9+Oev//78 919//O8jwQjaJ0ACDhCAVqgDBRbIwAY68IEQjKAEJ7jAE1jwghjMoAY3eAI72IIA IAyhCEdIwhKa8IQoBCECVsjCFrrwhTBEQBksIYAa2vCGOMyhDnfIwx7WMIZADOIK b8vABAYY8YhITKISl8jEJjrRiAaIohSnSMUqWtEAjSDFAbbIxS568YtgDKMYx7jF K5rxjFF8AycCwMY2uvGNcIyjHOdIRzai4I54zKMe98hHFLwhAYAMpCAHSchCGvKQ iAxkCRbJyEY68pGQXGRAAAA7 ------------fvIzmB7KOcVRaT5GD7tplQ--